Skip to content

Commit

Permalink
SHIBUI-1262(1306)
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed Jun 6, 2019
1 parent 21ea1fd commit be2090d
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 65 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,18 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

import static java.util.Comparator.comparing;
import static java.util.stream.Collectors.*;

/**
* Hibernate Envers based implementation of {@link EntityDescriptorVersionService}.
*/
public class EnversEntityDescriptorVersionService implements EntityDescriptorVersionService {

private AuditReader auditReader;

private EntityManager entityManager;

public EnversEntityDescriptorVersionService(EntityManager entityManager) {
Expand All @@ -38,18 +40,20 @@ public List<Version> findVersionsForEntityDescriptor(String resourceId) {
.add(AuditEntity.property("resourceId").eq(resourceId))
.getResultList();

//TODO: sort
Object revEntities = revs.stream()
.map(it -> (PrincipalAwareRevisionEntity)((Object[])it)[1])
Object listOfVersions = revs.stream()
.map(it -> ((Object[])it)[1])
.map(it -> {
return new Version(((PrincipalAwareRevisionEntity) it).idAsString(),
((PrincipalAwareRevisionEntity) it).getPrincipalUserName(),
((PrincipalAwareRevisionEntity) it).getRevisionDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
((PrincipalAwareRevisionEntity) it).getRevisionDate()
.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime());
})
.collect(Collectors.toList());

.sorted(comparing(Version::getDate))
.collect(toList());

return (List<Version>)revEntities;
return (List<Version>)listOfVersions;
}

@Override
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
package edu.internet2.tier.shibboleth.admin.ui.service

import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.EntitiesVersioningConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.*
import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor
import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.ContactRepresentation
import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation
import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository
import edu.internet2.tier.shibboleth.admin.ui.repository.envers.EnversTestsSupport
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.autoconfigure.domain.EntityScan
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
import org.springframework.data.jpa.repository.config.EnableJpaRepositories
import org.springframework.test.annotation.DirtiesContext
import org.springframework.test.context.ContextConfiguration
import org.springframework.transaction.PlatformTransactionManager
import spock.lang.Specification

import static edu.internet2.tier.shibboleth.admin.ui.repository.envers.EnversTestsSupport.*
import java.time.LocalDateTime

import static edu.internet2.tier.shibboleth.admin.ui.repository.envers.EnversTestsSupport.doInExplicitTransaction

@DataJpaTest
Expand All @@ -39,25 +34,45 @@ class EnversEntityDescriptorVersionServiceTests extends Specification {
@Autowired
PlatformTransactionManager txMgr

def "temp test"() {
def representation = new EntityDescriptorRepresentation().with {
it.contacts = [new ContactRepresentation(type: 'administrative', name: 'name', emailAddress: 'test@test')]
it
}
EntityDescriptor ed = entityDescriptorService.createDescriptorFromRepresentation(representation)
@DirtiesContext
def "versioning service returns correct number of versions sorted by modified date in natural order"() {
when: 'Initial version'
EntityDescriptor ed = new EntityDescriptor(entityID: 'ed', serviceProviderName: 'SP1')
ed = doInExplicitTransaction(txMgr) {
entityDescriptorRepository.save(ed)
}
entityDescriptorVersionService.findVersionsForEntityDescriptor(ed.resourceId)
def versions = entityDescriptorVersionService.findVersionsForEntityDescriptor(ed.resourceId)

ed.entityID = "Entity ID"
then:
versions.size() == 1
versions[0].id
versions[0].creator
versions[0].date < LocalDateTime.now()

when: 'Third version'
ed.serviceProviderName = 'SP2'
ed = doInExplicitTransaction(txMgr) {
entityDescriptorRepository.save(ed)
}
versions = entityDescriptorVersionService.findVersionsForEntityDescriptor(ed.resourceId)

def versions = entityDescriptorVersionService.findVersionsForEntityDescriptor(ed.resourceId)
then:
versions.size() == 2
versions[0].id && versions[1].id
versions[0].creator && versions[1].creator
versions[0].date < versions[1].date

when: 'Third version'
ed.serviceProviderName = 'SP3'
ed = doInExplicitTransaction(txMgr) {
entityDescriptorRepository.save(ed)
}
versions = entityDescriptorVersionService.findVersionsForEntityDescriptor(ed.resourceId)

expect:
true
then:
versions.size() == 3
versions[0].id && versions[1].id && versions[2].id
versions[0].creator && versions[1].creator && versions[2].creator
(versions[0].date < versions[1].date) && (versions[1].date < versions[2].date)
}
}

0 comments on commit be2090d

Please sign in to comment.