@Test public void testRevisionsOfEntityWithoutDelete() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, false ) .add( AuditEntity.id().eq( id2 ) ) .getResultList(); assert result.size() == 1; assert ((Object[]) result.get( 0 ))[0].equals( new StrIntTestEntity( "b", 11, id2 ) ); assert ((SequenceIdRevisionEntity) ((Object[]) result.get( 0 ))[1]).getId() == 1; assert ((Object[]) result.get( 0 ))[2].equals( RevisionType.ADD ); } }
@Test public void testRevisionsPropertyEqQuery() { List revs_id1 = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .add( AuditEntity.id().eq( id1 ) ) .getResultList(); Assert.assertEquals( 2, revs_id1.size() ); Assert.assertEquals( new StrIntTestEntity( "a", 10, id1 ), ((Object[]) revs_id1.get( 0 ))[0] ); Assert.assertEquals( new StrIntTestEntity( "a", 10, id1 ), ((Object[]) revs_id1.get( 1 ))[0] ); }
@Test public void testSelectEntitiesQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, true, false ) .add( AuditEntity.id().eq( id1 ) ) .getResultList(); assert result.size() == 2; assert result.get( 0 ).equals( new StrIntTestEntity( "a", 10, id1 ) ); assert result.get( 1 ).equals( new StrIntTestEntity( "aBc", 10, id1 ) ); }
@Test public void testRevisionsOfId2Query() { List<Object[]> result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .add( AuditEntity.id().eq( id2 ) ) .getResultList(); assert result.get( 0 )[0].equals( new StrIntTestEntity( "b", 15, id2 ) ); assert result.get( 0 )[1] instanceof CustomRevEntity; assert ((CustomRevEntity) result.get( 0 )[1]).getCustomId() == 1; }
@Test public void testRevisionTypes() { @SuppressWarnings({"unchecked"}) List<Object[]> results = getAuditReader().createQuery() .forRevisionsOfEntity( StrTestEntity.class, false, true ) .add( AuditEntity.id().eq( id ) ) .getResultList(); assertEquals( results.get( 0 )[2], RevisionType.ADD ); assertEquals( results.get( 1 )[2], RevisionType.MOD ); } }
@Test public void testRevisionTypes() { @SuppressWarnings({"unchecked"}) List<Object[]> results = getAuditReader().createQuery() .forRevisionsOfEntity( StrTestEntity.class, false, true ) .add( AuditEntity.id().eq( id ) ) .getResultList(); assertEquals( results.get( 0 )[2], RevisionType.ADD ); assertEquals( results.get( 1 )[2], RevisionType.MOD ); } }
@Test public void testRevisionTypes() { List<Object[]> results = getAuditReader().createQuery() .forRevisionsOfEntity( StrTestEntity.class, false, true ) .add( AuditEntity.id().eq( id ) ) .getResultList(); assertEquals( results.get( 0 )[2], RevisionType.ADD ); assertEquals( results.get( 1 )[2], RevisionType.MOD ); } }
private AuditQuery createForRevisionsQuery(Class<?> clazz, Object id, boolean withDeleted) { return getAuditReader().createQuery() .forRevisionsOfEntity( clazz, false, withDeleted ) .add( AuditEntity.id().eq( id ) ); }
@Test public void testRevisionTypes() { @SuppressWarnings({"unchecked"}) List<Object[]> results = getAuditReader().createQuery() .forRevisionsOfEntity( StrTestEntity.class, false, true ) .add( AuditEntity.id().eq( id ) ) .getResultList(); assertEquals( results.get( 0 )[2], RevisionType.ADD ); assertEquals( results.get( 1 )[2], RevisionType.MOD ); } }
@Test public void testRevisionTypes() { @SuppressWarnings({"unchecked"}) List<Object[]> results = getAuditReader().createQuery() .forRevisionsOfEntity( StrTestEntity.class, false, true ) .add( AuditEntity.id().eq( id ) ) .getResultList(); assertEquals( results.get( 0 )[2], RevisionType.ADD ); assertEquals( results.get( 1 )[2], RevisionType.DEL ); } }
@Test public void testProjectionsInEntitiesAtRevision() { assert getAuditReader().createQuery().forEntitiesAtRevision( StrIntTestEntity.class, 1 ) .getResultList().size() == 2; assert getAuditReader().createQuery().forEntitiesAtRevision( StrIntTestEntity.class, 2 ) .getResultList().size() == 1; assert (Long) getAuditReader().createQuery().forEntitiesAtRevision( StrIntTestEntity.class, 1 ) .addProjection( AuditEntity.id().count() ).getResultList().get( 0 ) == 2; assert (Long) getAuditReader().createQuery().forEntitiesAtRevision( StrIntTestEntity.class, 2 ) .addProjection( AuditEntity.id().count() ).getResultList().get( 0 ) == 1; }
@Test public void testRevisionTypeNeQuery() { // The query shouldn't be ordered as always, otherwise - we get an exception. List results = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, true, true ) .add( AuditEntity.id().eq( id1 ) ) .add( AuditEntity.revisionType().ne( RevisionType.MOD ) ) .getResultList(); Assert.assertEquals( 1, results.size() ); Assert.assertEquals( new StrIntTestEntity( "a", 10, id1 ), results.get( 0 ) ); } }
@Test public void testRevisionCountQuery() { // The query shouldn't be ordered as always, otherwise - we get an exception. Object result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber().count() ) .add( AuditEntity.id().eq( id1 ) ) .getSingleResult(); Assert.assertEquals( Long.valueOf( 4 ), result ); }
@Test @TestForIssue(jiraKey = "HHH-8036") public void testEntityIdProjection() { Integer maxId = (Integer) getAuditReader().createQuery().forRevisionsOfEntity( IntTestEntity.class, true, true ) .addProjection( AuditEntity.id().max() ) .add( AuditEntity.revisionNumber().gt( 2 ) ) .getSingleResult(); Assert.assertEquals( Integer.valueOf( 2 ), maxId ); }
@Test public void testRevisionOrderQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.id().eq( id1 ) ) .addOrder( AuditEntity.revisionNumber().desc() ) .getResultList(); Assert.assertEquals( Arrays.asList( 4, 3, 2, 1 ), result ); }
@Test public void testEntitiesIdQuery() { StrIntTestEntity ver2 = (StrIntTestEntity) getAuditReader().createQuery() .forEntitiesAtRevision( StrIntTestEntity.class, 2 ) .add( AuditEntity.id().eq( id2 ) ) .getSingleResult(); assert ver2.equals( new StrIntTestEntity( "a", 20, id2 ) ); }
@Test public void testEntityRevisionsWithChangesQueryNoDeletions() { List results = getAuditReader().createQuery() .forRevisionsOfEntityWithChanges( Simple.class, false ) .add( AuditEntity.id().eq( simpleId ) ) .getResultList(); compareResults( getExpectedResults( false ), results ); }
@Test public void testEntityRevisionsWithChangesQuery() { List results = getAuditReader().createQuery() .forRevisionsOfEntityWithChanges( Simple.class, true ) .add( AuditEntity.id().eq( simpleId ) ) .getResultList(); compareResults( getExpectedResults( true ), results ); }
@Test @TestForIssue(jiraKey = "HHH-8036") public void testUnusualIdFieldName() { UnusualIdNamingEntity entity = (UnusualIdNamingEntity) getAuditReader().createQuery() .forRevisionsOfEntity( UnusualIdNamingEntity.class, true, true ) .add( AuditEntity.id().like( "id1" ) ) .getSingleResult(); Assert.assertEquals( new UnusualIdNamingEntity( "id1", "data1" ), entity ); }
@Test public void testElementCollection() { List queryResult = getAuditReader().createQuery().forRevisionsOfEntity( StringSetEntity.class, false, true ) .add( AuditEntity.id().eq( stringSetId ) ) .add( AuditEntity.revisionType().eq( RevisionType.DEL ) ) .getResultList(); Object[] objArray = (Object[]) queryResult.get( 0 ); Assert.assertEquals( 12, getRevisionNumber( objArray[1] ) ); StringSetEntity stringSetEntity = (StringSetEntity) objArray[0]; Assert.assertEquals( TestTools.makeSet( "string 1", "string 2" ), stringSetEntity.getStrings() ); }