@Test public void testEmptyRevisionOfEntityQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .getResultList(); assert result.size() == 7; }
@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 testHasChangedHasNotChangedCriteria() throws Exception { List list = getAuditReader().createQuery().forRevisionsOfEntity( AuditedTestEntity.class, true, true ) .add( AuditEntity.property( "str1" ).hasChanged() ).getResultList(); assertEquals( 2, list.size() ); assertEquals( "str1", ((AuditedTestEntity) list.get( 0 )).getStr1() ); assertEquals( "str2", ((AuditedTestEntity) list.get( 1 )).getStr1() ); list = getAuditReader().createQuery().forRevisionsOfEntity( AuditedTestEntity.class, true, true ) .add( AuditEntity.property( "str1" ).hasNotChanged() ).getResultList(); assertTrue( list.isEmpty() ); }
@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 @TestForIssue( jiraKey = "HHH-7555" ) public void testFindRevisionEntitiesWithDeletions() { List<?> revisionInfos = getAuditReader().createQuery() .forRevisionsOfEntity( AuditedTestEntity.class, true ) .getResultList(); assertEquals( 3, revisionInfos.size() ); revisionInfos.forEach( e -> assertTyping( SequenceIdRevisionEntity.class, e ) ); }
@Test @TestForIssue( jiraKey = "HHH-7555" ) public void testFindRevisionEntitiesWithoutDeletions() { List<?> revisionInfos = getAuditReader().createQuery() .forRevisionsOfEntity( AuditedTestEntity.class, false ) .getResultList(); assertEquals( 2, revisionInfos.size() ); revisionInfos.forEach( e -> assertTyping( SequenceIdRevisionEntity.class, e ) ); }
@Test public void testEmptyConjunctionRevisionOfEntityQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .add( AuditEntity.conjunction() ) .getResultList(); assert result.size() == 7; }
@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 ); } }
@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 testMinimizeWithPropertyEq() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.property( "number" ).minimize() .add( AuditEntity.property( "str1" ).eq( "a" ) ) ) .getResultList(); assert Arrays.asList( 1 ).equals( result ); }
@Test public void testMaximizeRevision() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.revisionNumber().maximize() .add( AuditEntity.property( "number" ).eq( 10 ) ) ) .getResultList(); assert Arrays.asList( 2 ).equals( result ); }
@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 public void testCompany3EmployeeIn() { AuditQuery auditQuery = getAuditReader().createQuery().forRevisionsOfEntity( Employee.class, true, true ); auditQuery.add( AuditEntity.relatedId( "company" ).in( new Integer[]{ company3Id } ) ); final List<Employee> results = auditQuery.getResultList(); assertEquals( 1, results.size() ); final Employee employee = makeEmployee( employee4Id, "Employee4", company3Id, "COMPANY3" ); assertEquals( results, TestTools.makeList( employee ) ); }
@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 testModifiedFlagChangesForProjectType() { final List results = getAuditReader().createQuery() .forRevisionsOfEntity( Project.class, false, true ) .add( AuditEntity.property( "type" ).hasChanged() ) .addProjection( AuditEntity.revisionNumber() ) .addOrder( AuditEntity.revisionNumber().asc() ) .getResultList(); assertEquals( Arrays.asList( 1 ), results ); }
@Test public void testModifiedFlagChangesForProjectName() { final List results = getAuditReader().createQuery() .forRevisionsOfEntity( Project.class, false, true ) .add( AuditEntity.property( "name" ).hasChanged() ) .addProjection( AuditEntity.revisionNumber() ) .addOrder( AuditEntity.revisionNumber().asc() ) .getResultList(); assertEquals( Arrays.asList( 1, 2, 3, 4, 5, 6 ), results ); }
@Test public void testRevisionsGtWithPropertyQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.revisionNumber().gt( 1 ) ) .add( AuditEntity.property( "number" ).lt( 10 ) ) .getResultList(); Assert.assertEquals( TestTools.makeSet( 3, 4 ), new HashSet<>( result ) ); }
@Test @TestForIssue(jiraKey = "HHH-8495") public void testIlikeWithMatchMode() { StrIntTestEntity site1 = new StrIntTestEntity( "aBc", 10, id1 ); StrIntTestEntity result = (StrIntTestEntity) getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, true, true ) .add( AuditEntity.property( "str1" ).ilike( "BC", MatchMode.ANYWHERE ) ) .getSingleResult(); Assert.assertEquals( site1, result ); }
@Test public void testRevisionsGeQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber().distinct() ) .add( AuditEntity.revisionNumber().ge( 2 ) ) .addOrder( AuditEntity.revisionNumber().asc() ) .getResultList(); Assert.assertEquals( TestTools.makeSet( 2, 3, 4 ), new HashSet( result ) ); }