Permalink
Browse files

HHH-7800 - Tests cleanup

  • Loading branch information...
1 parent dadc43a commit 468c58358edbf091e33642fa123ac3494d67738d @lukasz-antoniak lukasz-antoniak committed Nov 22, 2012
@@ -30,13 +30,14 @@
import javax.persistence.EntityManager;
-import junit.framework.Assert;
-
import org.hibernate.envers.query.AuditEntity;
import org.hibernate.envers.query.criteria.AuditDisjunction;
import org.hibernate.envers.test.BaseEnversJPAFunctionalTestCase;
import org.hibernate.envers.test.Priority;
import org.hibernate.envers.test.entities.StrIntTestEntity;
+import org.hibernate.testing.TestForIssue;
+
+import org.junit.Assert;
import org.junit.Test;
/**
@@ -141,33 +142,32 @@ public void testMaximizeRevision() {
.add(AuditEntity.property("number").eq(10)))
.getResultList();
- System.out.println(result);
assert Arrays.asList(2).equals(result);
}
-
- @Test
- public void testMaximizeInDisjunction() {
- List<Integer> idsToQuery = Arrays.asList(id1, id3);
-
- AuditDisjunction disjunction = AuditEntity.disjunction();
-
- for (Integer id : idsToQuery) {
- disjunction.add(AuditEntity.revisionNumber().maximize()
- .add(AuditEntity.id().eq(id)));
- }
- List result = getAuditReader().createQuery()
- .forRevisionsOfEntity(StrIntTestEntity.class, true, true)
- .add(disjunction)
- .getResultList();
-
- Set<Integer> idsSeen = new HashSet<Integer>();
- for (Object o : result) {
- StrIntTestEntity entity = (StrIntTestEntity) o;
- Integer id = entity.getId();
- Assert.assertTrue("Entity with ID "+id+" returned but not queried for.", idsToQuery.contains(id));
- if (!idsSeen.add(id)) {
- Assert.fail("Multiple revisions returned with ID "+id+"; expected only one.");
- }
- }
- }
+
+ @Test
+ @TestForIssue(jiraKey = "HHH-7800")
+ public void testMaximizeInDisjunction() {
+ List<Integer> idsToQuery = Arrays.asList( id1, id3 );
+
+ AuditDisjunction disjunction = AuditEntity.disjunction();
+
+ for ( Integer id : idsToQuery ) {
+ disjunction.add( AuditEntity.revisionNumber().maximize().add( AuditEntity.id().eq( id ) ) );
+ }
+ List result = getAuditReader().createQuery()
+ .forRevisionsOfEntity( StrIntTestEntity.class, true, true )
+ .add( disjunction )
+ .getResultList();
+
+ Set<Integer> idsSeen = new HashSet<Integer>();
+ for ( Object o : result ) {
+ StrIntTestEntity entity = (StrIntTestEntity) o;
+ Integer id = entity.getId();
+ Assert.assertTrue( "Entity with ID " + id + " returned but not queried for.", idsToQuery.contains( id ) );
+ if ( !idsSeen.add( id ) ) {
+ Assert.fail( "Multiple revisions returned with ID " + id + "; expected only one." );
+ }
+ }
+ }
}
@@ -34,11 +34,11 @@
import org.hibernate.envers.enhanced.SequenceIdRevisionEntity;
import org.hibernate.envers.RevisionType;
import org.hibernate.envers.query.AuditEntity;
-import org.hibernate.envers.query.criteria.AuditDisjunction;
import org.hibernate.envers.test.BaseEnversJPAFunctionalTestCase;
import org.hibernate.envers.test.Priority;
import org.hibernate.envers.test.entities.StrIntTestEntity;
import org.hibernate.envers.test.tools.TestTools;
+import org.hibernate.testing.TestForIssue;
/**
* @author Adam Warski (adam at warski dot org)
@@ -326,20 +326,21 @@ public void testNoEntitiesModifiedAtRevision() {
List result = getAuditReader().createQuery().forEntitiesModifiedAtRevision(StrIntTestEntity.class, 5).getResultList();
Assert.assertTrue(result.isEmpty());
}
-
- @Test
- public void testBetweenInsideDisjunction() {
- List result = getAuditReader().createQuery()
- .forRevisionsOfEntity(StrIntTestEntity.class, true, true)
- .add(AuditEntity.disjunction()
- .add(AuditEntity.property("number").between(0, 5))
- .add(AuditEntity.property("number").between(20, 100)))
- .getResultList();
-
- for (Object o : result) {
- StrIntTestEntity entity = (StrIntTestEntity)o;
- int number = entity.getNumber();
- assert ( number >= 0 && number <= 5) || ( number >= 20 && number <= 100);
- }
- }
+
+ @Test
+ @TestForIssue(jiraKey = "HHH-7800")
+ public void testBetweenInsideDisjunction() {
+ List result = getAuditReader().createQuery()
+ .forRevisionsOfEntity( StrIntTestEntity.class, true, true )
+ .add( AuditEntity.disjunction()
+ .add( AuditEntity.property( "number" ).between( 0, 5 ) )
+ .add( AuditEntity.property( "number" ).between( 20, 100 ) ) )
+ .getResultList();
+
+ for ( Object o : result ) {
+ StrIntTestEntity entity = (StrIntTestEntity) o;
+ int number = entity.getNumber();
+ Assert.assertTrue( ( number >= 0 && number <= 5 ) || ( number >= 20 && number <= 100 ) );
+ }
+ }
}
@@ -23,29 +23,38 @@
*/
package org.hibernate.envers.test.integration.query;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
+import junit.framework.Assert;
import org.junit.Test;
+import org.hibernate.envers.RevisionType;
+import org.hibernate.envers.enhanced.SequenceIdRevisionEntity;
import org.hibernate.envers.query.AuditEntity;
+import org.hibernate.envers.query.criteria.AuditCriterion;
+import org.hibernate.envers.query.criteria.AuditDisjunction;
import org.hibernate.envers.test.BaseEnversJPAFunctionalTestCase;
import org.hibernate.envers.test.Priority;
import org.hibernate.envers.test.entities.StrIntTestEntity;
+import org.hibernate.testing.TestForIssue;
/**
* A test which checks if the data of a deleted entity is stored when the setting is on.
* @author Adam Warski (adam at warski dot org)
*/
-@SuppressWarnings({"unchecked"})
+@SuppressWarnings({ "unchecked" })
public class StoreDeletedData extends BaseEnversJPAFunctionalTestCase {
- private Integer id1;
+ private Integer id1;
+ private Integer id2;
+ private Integer id3;
@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class[] { StrIntTestEntity.class };
- }
+ }
@Override
protected void addConfigOptions(Map options) {
@@ -54,37 +63,86 @@ protected void addConfigOptions(Map options) {
}
@Test
- @Priority(10)
- public void initData() {
- // Revision 1
- EntityManager em = getEntityManager();
- em.getTransaction().begin();
-
- StrIntTestEntity site1 = new StrIntTestEntity("a", 10);
-
- em.persist(site1);
-
- id1 = site1.getId();
-
- em.getTransaction().commit();
-
- // Revision 2
- em.getTransaction().begin();
-
- em.remove(site1);
-
- em.getTransaction().commit();
- }
+ @Priority(10)
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ // Revision 1
+ em.getTransaction().begin();
+ StrIntTestEntity site1 = new StrIntTestEntity( "a", 10 );
+ em.persist( site1 );
+ id1 = site1.getId();
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+ em.remove( site1 );
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+ StrIntTestEntity site2 = new StrIntTestEntity( "b", 20 );
+ em.persist( site2 );
+ id2 = site2.getId();
+ StrIntTestEntity site3 = new StrIntTestEntity( "c", 30 );
+ em.persist( site3 );
+ id3 = site3.getId();
+ em.getTransaction().commit();
+
+ // Revision 4
+ em.getTransaction().begin();
+ em.remove( site2 );
+ em.remove( site3 );
+ em.getTransaction().commit();
+
+ em.close();
+ }
- @Test
- public void testRevisionsPropertyEqQuery() {
- List revs_id1 = getAuditReader().createQuery()
- .forRevisionsOfEntity(StrIntTestEntity.class, false, true)
- .add(AuditEntity.id().eq(id1))
- .getResultList();
+ @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] );
+ }
- assert revs_id1.size() == 2;
- assert ((Object[]) revs_id1.get(0))[0].equals(new StrIntTestEntity("a", 10, id1));
- assert ((Object[]) revs_id1.get(1))[0].equals(new StrIntTestEntity("a", 10, id1));
- }
+ @Test
+ @TestForIssue(jiraKey = "HHH-7800")
+ public void testMaximizeInDisjunction() {
+ List<Integer> queryIds = Arrays.asList( id2, id3 );
+
+ AuditDisjunction disjunction = AuditEntity.disjunction();
+ for ( Integer id : queryIds ) {
+ AuditCriterion crit = AuditEntity.revisionNumber().maximize()
+ .add( AuditEntity.id().eq( id ) )
+ .add( AuditEntity.revisionType().ne( RevisionType.DEL ) );
+ disjunction.add( crit );
+ // Workaround: using this line instead works correctly:
+ // disjunction.add(AuditEntity.conjunction().add(crit));
+ }
+
+ List<?> beforeDeletionRevisions = getAuditReader().createQuery()
+ .forRevisionsOfEntity( StrIntTestEntity.class, false, false )
+ .add( disjunction )
+ .addOrder( AuditEntity.property( "id" ).asc() )
+ .getResultList();
+
+ Assert.assertEquals( 2, beforeDeletionRevisions.size() );
+
+ Object[] result1 = (Object[]) beforeDeletionRevisions.get( 0 );
+ Object[] result2 = (Object[]) beforeDeletionRevisions.get( 1 );
+
+ Assert.assertEquals( new StrIntTestEntity( "b", 20, id2 ), result1[0] );
+ // Making sure that we have received an entity added at revision 3.
+ Assert.assertEquals( 3, ( (SequenceIdRevisionEntity) result1[1] ).getId() );
+ Assert.assertEquals( RevisionType.ADD, result1[2] );
+ Assert.assertEquals( new StrIntTestEntity( "c", 30, id3 ), result2[0] );
+ // Making sure that we have received an entity added at revision 3.
+ Assert.assertEquals( 3, ( (SequenceIdRevisionEntity) result2[1] ).getId() );
+ Assert.assertEquals( RevisionType.ADD, result2[2] );
+ }
}

0 comments on commit 468c583

Please sign in to comment.