Skip to content

Commit

Permalink
SHIBUI-1262 [1307 WIP]
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed May 28, 2019
1 parent be74f0b commit 0d4a43d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRe
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository
import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService
import org.hibernate.envers.AuditReaderFactory
import org.hibernate.envers.query.AuditQuery
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.autoconfigure.domain.EntityScan
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
Expand All @@ -24,6 +22,8 @@ import javax.persistence.EntityManager

import static edu.internet2.tier.shibboleth.admin.ui.domain.util.entitydescriptors.EntityDescriptors.prebakedEntityDescriptor
import static edu.internet2.tier.shibboleth.admin.ui.repository.envers.EnversTestsSupport.doInExplicitTransaction
import static edu.internet2.tier.shibboleth.admin.ui.repository.envers.EnversTestsSupport.getRevisionHistory
import static edu.internet2.tier.shibboleth.admin.ui.repository.envers.EnversTestsSupport.updateAndGetRevisionHistory
import static org.opensaml.saml.saml2.metadata.ContactPersonTypeEnumeration.ADMINISTRATIVE
import static org.opensaml.saml.saml2.metadata.ContactPersonTypeEnumeration.OTHER

Expand Down Expand Up @@ -56,7 +56,7 @@ class EntityDescriptorEnversVersioningTests extends Specification {
EntityDescriptor ed = doInExplicitTransaction(txMgr) {
entityDescriptorRepository.save(prebakedEntityDescriptor(openSamlObjects))
}
def entityDescriptorHistory = getRevisionHistory()
def entityDescriptorHistory = getRevisionHistory(entityManager)

then:
entityDescriptorHistory.size() == 1
Expand All @@ -66,7 +66,10 @@ class EntityDescriptorEnversVersioningTests extends Specification {
it.contacts = [new ContactRepresentation(type: 'administrative', name: 'nameUPDATED', emailAddress: 'test@test')]
it
}
entityDescriptorHistory = updateAndGetRevisionHistory(ed, representation)
entityDescriptorHistory = updateAndGetRevisionHistory(ed, representation, entityDescriptorService,
entityDescriptorRepository,
txMgr,
entityManager)

then:
entityDescriptorHistory.size() == 2
Expand All @@ -80,7 +83,11 @@ class EntityDescriptorEnversVersioningTests extends Specification {
it.contacts = [new ContactRepresentation(type: 'other', name: 'nameUPDATED', emailAddress: 'test@test.com')]
it
}
entityDescriptorHistory = updateAndGetRevisionHistory(ed, representation)
entityDescriptorHistory = updateAndGetRevisionHistory(ed, representation,
entityDescriptorService,
entityDescriptorRepository,
txMgr,
entityManager)

then:
entityDescriptorHistory.size() == 3
Expand All @@ -98,20 +105,4 @@ class EntityDescriptorEnversVersioningTests extends Specification {
entityDescriptorHistory[0][1].timestamp > 0L

}

private updateAndGetRevisionHistory(ed, representation) {
entityDescriptorService.updateDescriptorFromRepresentation(ed, representation)
doInExplicitTransaction(txMgr) {
entityDescriptorRepository.save(ed)
}
getRevisionHistory()
}

private getRevisionHistory() {
def auditReader = AuditReaderFactory.get(entityManager)
AuditQuery auditQuery = auditReader
.createQuery()
.forRevisionsOfEntity(EntityDescriptor, false, false)
auditQuery.resultList
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
package edu.internet2.tier.shibboleth.admin.ui.repository.envers

import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor
import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository
import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService
import org.hibernate.envers.AuditReaderFactory
import org.hibernate.envers.query.AuditQuery
import org.springframework.transaction.PlatformTransactionManager
import org.springframework.transaction.support.DefaultTransactionDefinition

import javax.persistence.EntityManager

import static org.springframework.transaction.TransactionDefinition.PROPAGATION_REQUIRES_NEW

class EnversTestsSupport {
Expand All @@ -17,4 +24,24 @@ class EnversTestsSupport {
txMgr.commit(txStatus)
entity
}

static updateAndGetRevisionHistory(ed, representation,
EntityDescriptorService eds,
EntityDescriptorRepository edr,
PlatformTransactionManager txMgr,
EntityManager em) {
eds.updateDescriptorFromRepresentation(ed, representation)
doInExplicitTransaction(txMgr) {
edr.save(ed)
}
getRevisionHistory(em)
}

static getRevisionHistory(EntityManager em) {
def auditReader = AuditReaderFactory.get(em)
AuditQuery auditQuery = auditReader
.createQuery()
.forRevisionsOfEntity(EntityDescriptor, false, false)
auditQuery.resultList
}
}

0 comments on commit 0d4a43d

Please sign in to comment.