@Test public void testFindEntityTypesChangedInRevision() { assert TestTools.makeSet( Pair.make( StrTestEntity.class.getName(), StrTestEntity.class ), Pair.make( StrIntTestEntity.class.getName(), StrIntTestEntity.class ) ) .equals( getCrossTypeRevisionChangesReader().findEntityTypes( 1 ) ); assert TestTools.makeSet( Pair.make( StrIntTestEntity.class.getName(), StrIntTestEntity.class ) ) .equals( getCrossTypeRevisionChangesReader().findEntityTypes( 2 ) ); assert TestTools.makeSet( Pair.make( StrTestEntity.class.getName(), StrTestEntity.class ), Pair.make( StrIntTestEntity.class.getName(), StrIntTestEntity.class ) ) .equals( getCrossTypeRevisionChangesReader().findEntityTypes( 3 ) ); }
@Test public void testFindChangesInInvalidRevision() { assert getCrossTypeRevisionChangesReader().findEntities( 4 ).isEmpty(); }
@Test public void testTrackModifiedEntitiesGroupByRevisionType() { StrIntTestEntity site = new StrIntTestEntity( "y", 2, siteId ); Map<RevisionType, List<Object>> result = getCrossTypeRevisionChangesReader().findEntitiesGroupByRevisionType( 2 ); assert TestTools.checkCollection( result.get( RevisionType.ADD ) ); assert TestTools.checkCollection( result.get( RevisionType.MOD ), site ); assert TestTools.checkCollection( result.get( RevisionType.DEL ) ); }
@Test public void testTrackUpdateAndRemoveTheSameEntity() { StrTestEntity ste1 = new StrTestEntity( null, steId1 ); Assert.assertEquals( TestTools.makeSet( ste1 ), new HashSet<Object>( getCrossTypeRevisionChangesReader().findEntities( 3 ) ) ); }
@Test @SuppressWarnings("unchecked") public void testModifiedEntityTypes() { assert TestTools.makeSet( Pair.make( Car.class.getName(), Car.class ), Pair.make( "Personaje", Person.class ) ) .equals( getAuditReader().getCrossTypeRevisionChangesReader().findEntityTypes( 1 ) ); assert TestTools.makeSet( Pair.make( Car.class.getName(), Car.class ), Pair.make( "Personaje", Person.class ) ) .equals( getAuditReader().getCrossTypeRevisionChangesReader().findEntityTypes( 2 ) ); } }
@Test public void testTrackAddedEntitiesGroupByRevisionType() { StrTestEntity ste = new StrTestEntity( "x", steId ); StrIntTestEntity site = new StrIntTestEntity( "y", 1, siteId ); Map<RevisionType, List<Object>> result = getCrossTypeRevisionChangesReader().findEntitiesGroupByRevisionType( 1 ); assert TestTools.checkCollection( result.get( RevisionType.ADD ), site, ste ); assert TestTools.checkCollection( result.get( RevisionType.MOD ) ); assert TestTools.checkCollection( result.get( RevisionType.DEL ) ); }
@Test public void testTrackModifiedEntities() { StrIntTestEntity site = new StrIntTestEntity( "y", 2, siteId ); assert TestTools.checkCollection( getCrossTypeRevisionChangesReader().findEntities( 2 ), site ); }
.get( entityManager ) .getCrossTypeRevisionChangesReader() .findEntityTypes( 1 ) .iterator().next() .getFirst() .get( entityManager ) .getCrossTypeRevisionChangesReader() .findEntityTypes( 2 ) .iterator().next() .getFirst()
@Test public void testTrackDeletedEntitiesGroupByRevisionType() { StrTestEntity ste = new StrTestEntity( null, steId ); StrIntTestEntity site = new StrIntTestEntity( null, null, siteId ); Map<RevisionType, List<Object>> result = getCrossTypeRevisionChangesReader().findEntitiesGroupByRevisionType( 3 ); assert TestTools.checkCollection( result.get( RevisionType.ADD ) ); assert TestTools.checkCollection( result.get( RevisionType.MOD ) ); assert TestTools.checkCollection( result.get( RevisionType.DEL ), site, ste ); }
@Test public void testFindChangedEntitiesByRevisionTypeMOD() { StrIntTestEntity site = new StrIntTestEntity( "y", 2, siteId ); assert TestTools.checkCollection( getCrossTypeRevisionChangesReader().findEntities( 2, RevisionType.MOD ), site ); }
/** * Return a map of entity names and associated java classes modified at a given revision. * * @param revision The revision number. * * @return Map of entity-name and java-class pairs. * * @throws IllegalStateException If the associated persistence context is closed. * @throws IllegalArgumentException If a revision number is {@code null} or less than or equal to 0. */ default Map<String, Class<?>> findEntityTypesByRevision(Number revision) { final Map<String, Class<?>> map = new HashMap<>(); for ( Pair<String, Class> pair : findEntityTypes( revision ) ) { map.put( pair.getFirst(), pair.getSecond() ); } return map; } }
@Test public void testTrackAddedTwoEntities() { StrTestEntity ste1 = new StrTestEntity( "x", steId1 ); StrTestEntity ste2 = new StrTestEntity( "y", steId2 ); Assert.assertEquals( TestTools.makeSet( ste1, ste2 ), new HashSet<Object>( getCrossTypeRevisionChangesReader().findEntities( 1 ) ) ); }
@Test public void testTrackUpdateAndRemoveDifferentEntities() { StrTestEntity ste1 = new StrTestEntity( "z", steId1 ); StrTestEntity ste2 = new StrTestEntity( null, steId2 ); Assert.assertEquals( TestTools.makeSet( ste1, ste2 ), new HashSet<Object>( getCrossTypeRevisionChangesReader().findEntities( 2 ) ) ); }
@Test public void testFindChangedEntitiesByRevisionTypeDEL() { StrTestEntity ste = new StrTestEntity( null, steId ); StrIntTestEntity site = new StrIntTestEntity( null, null, siteId ); assert TestTools.checkCollection( getCrossTypeRevisionChangesReader().findEntities( 3, RevisionType.DEL ), ste, site ); }
@Test public void testTrackAddedEntities() { StrTestEntity ste = new StrTestEntity( "x", steId ); StrIntTestEntity site = new StrIntTestEntity( "y", 1, siteId ); assert TestTools.checkCollection( getCrossTypeRevisionChangesReader().findEntities( 1 ), ste, site ); }
@Test public void testTrackDeletedEntities() { StrTestEntity ste = new StrTestEntity( null, steId ); StrIntTestEntity site = new StrIntTestEntity( null, null, siteId ); assert TestTools.checkCollection( getCrossTypeRevisionChangesReader().findEntities( 3 ), site, ste ); }
@Test public void testFindChangedEntitiesByRevisionTypeADD() { StrTestEntity ste = new StrTestEntity( "x", steId ); StrIntTestEntity site = new StrIntTestEntity( "y", 1, siteId ); assert TestTools.checkCollection( getCrossTypeRevisionChangesReader().findEntities( 1, RevisionType.ADD ), ste, site ); }
public List<AuditViewEntry> getAuditViewEntriesForResource(Integer resourceId) { // Map<Hashcode, AuditViewEntry> Map<Integer, AuditViewEntry> allAuditViewEntries = new HashMap<>(); AuditReader reader = AuditReaderFactory.get(entityManager); CrossTypeRevisionChangesReader crossTypeRevisionChangesReader = reader.getCrossTypeRevisionChangesReader(); List<MyRevisionEntity> revisionsForResource = getRevisionsForResource(resourceId); for (MyRevisionEntity revisionEntity : revisionsForResource) { List<Object> changedEntitiesForRevision = crossTypeRevisionChangesReader.findEntities(revisionEntity.getId()); for (Object o : changedEntitiesForRevision) { List resultList = reader.createQuery() .forRevisionsOfEntity(o.getClass(), false, true) .add(AuditEntity.revisionNumber().eq(revisionEntity.getId())) .getResultList(); createAuditViewEntriesAndAddToMap(allAuditViewEntries, resultList); } } return new ArrayList<>(allAuditViewEntries.values()); }