Author: adamw
Date: 2008-08-21 07:30:54 -0400 (Thu, 21 Aug 2008)
New Revision: 118
Added:
trunk/src/test/org/jboss/envers/test/entities/onetomany/unidirectional/ListRefCollEntity.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedList.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/DataChangesNotOwnedSet.java
Modified:
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedSet.java
trunk/src/test/org/jboss/envers/test/tools/TestTools.java
Log:
ENVERS-26: more tests
Copied:
trunk/src/test/org/jboss/envers/test/entities/onetomany/unidirectional/ListRefCollEntity.java
(from rev 117,
trunk/src/test/org/jboss/envers/test/entities/onetomany/unidirectional/SetRefCollEntity.java)
===================================================================
---
trunk/src/test/org/jboss/envers/test/entities/onetomany/unidirectional/ListRefCollEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/onetomany/unidirectional/ListRefCollEntity.java 2008-08-21
11:30:54 UTC (rev 118)
@@ -0,0 +1,85 @@
+package org.jboss.envers.test.entities.onetomany.unidirectional;
+
+import org.jboss.envers.Versioned;
+import org.jboss.envers.test.entities.StrTestEntity;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import java.util.List;
+
+/**
+ * Set collection of references entity
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class ListRefCollEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ @Versioned
+ @OneToMany
+ private List<StrTestEntity> collection;
+
+ public ListRefCollEntity() {
+ }
+
+ public ListRefCollEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public ListRefCollEntity(String data) {
+ this.data = data;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ public List<StrTestEntity> getCollection() {
+ return collection;
+ }
+
+ public void setCollection(List<StrTestEntity> collection) {
+ this.collection = collection;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ListRefCollEntity)) return false;
+
+ ListRefCollEntity that = (ListRefCollEntity) o;
+
+ if (data != null ? !data.equals(that.data) : that.data != null) return false;
+ if (id != null ? !id.equals(that.id) : that.id != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = (id != null ? id.hashCode() : 0);
+ result = 31 * result + (data != null ? data.hashCode() : 0);
+ return result;
+ }
+
+ public String toString() {
+ return "SetRefEdEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Property changes on:
trunk/src/test/org/jboss/envers/test/entities/onetomany/unidirectional/ListRefCollEntity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java 2008-08-21
11:18:53 UTC (rev 117)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicList.java 2008-08-21
11:30:54 UTC (rev 118)
@@ -3,6 +3,7 @@
import org.jboss.envers.test.integration.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.ListRefEdEntity;
import org.jboss.envers.test.entities.onetomany.ListRefIngEntity;
+import org.jboss.envers.test.tools.TestTools;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.hibernate.ejb.Ejb3Configuration;
@@ -83,21 +84,6 @@
assert Arrays.asList(1,
2).equals(getVersionsReader().getRevisions(ListRefIngEntity.class, ing1_id));
assert Arrays.asList(1,
3).equals(getVersionsReader().getRevisions(ListRefIngEntity.class, ing2_id));
}
-
- private <T> boolean checkList(List<T> list, T... objects) {
- if (list.size() != objects.length) {
- return false;
- }
-
- for (T obj : objects) {
- if (!list.contains(obj)) {
- return false;
- }
- }
-
- return true;
- }
-
@Test
public void testHistoryOfEdId1() {
ListRefIngEntity ing1 = getEntityManager().find(ListRefIngEntity.class,
ing1_id);
@@ -107,9 +93,9 @@
ListRefEdEntity rev2 = getVersionsReader().find(ListRefEdEntity.class, ed1_id,
2);
ListRefEdEntity rev3 = getVersionsReader().find(ListRefEdEntity.class, ed1_id,
3);
- assert checkList(rev1.getReffering(), ing1, ing2);
- assert checkList(rev2.getReffering(), ing2);
- assert checkList(rev3.getReffering());
+ assert TestTools.checkList(rev1.getReffering(), ing1, ing2);
+ assert TestTools.checkList(rev2.getReffering(), ing2);
+ assert TestTools.checkList(rev3.getReffering());
}
@Test
@@ -121,9 +107,9 @@
ListRefEdEntity rev2 = getVersionsReader().find(ListRefEdEntity.class, ed2_id,
2);
ListRefEdEntity rev3 = getVersionsReader().find(ListRefEdEntity.class, ed2_id,
3);
- assert checkList(rev1.getReffering());
- assert checkList(rev2.getReffering(), ing1);
- assert checkList(rev3.getReffering(), ing1, ing2);
+ assert TestTools.checkList(rev1.getReffering());
+ assert TestTools.checkList(rev2.getReffering(), ing1);
+ assert TestTools.checkList(rev3.getReffering(), ing1, ing2);
}
@Test
Modified: trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java 2008-08-21
11:18:53 UTC (rev 117)
+++ trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java 2008-08-21
11:30:54 UTC (rev 118)
@@ -3,14 +3,13 @@
import org.jboss.envers.test.integration.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.SetRefEdEntity;
import org.jboss.envers.test.entities.onetomany.SetRefIngEntity;
+import org.jboss.envers.test.tools.TestTools;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.hibernate.ejb.Ejb3Configuration;
import javax.persistence.EntityManager;
import java.util.Arrays;
-import java.util.Set;
-import java.util.HashSet;
import java.util.Collections;
/**
@@ -98,13 +97,6 @@
assert Arrays.asList(2,
4).equals(getVersionsReader().getRevisions(SetRefIngEntity.class, ing2_id));
}
- private <T> Set<T> makeSet(T... objects) {
- Set<T> ret = new HashSet<T>();
- //noinspection ManualArrayToCollectionCopy
- for (T obj : objects) { ret.add(obj); }
- return ret;
- }
-
@Test
public void testHistoryOfEdId1() {
SetRefIngEntity ing1 = getEntityManager().find(SetRefIngEntity.class, ing1_id);
@@ -116,8 +108,8 @@
SetRefEdEntity rev4 = getVersionsReader().find(SetRefEdEntity.class, ed1_id, 4);
assert rev1.getReffering().equals(Collections.EMPTY_SET);
- assert rev2.getReffering().equals(makeSet(ing1, ing2));
- assert rev3.getReffering().equals(makeSet(ing2));
+ assert rev2.getReffering().equals(TestTools.makeSet(ing1, ing2));
+ assert rev3.getReffering().equals(TestTools.makeSet(ing2));
assert rev4.getReffering().equals(Collections.EMPTY_SET);
}
@@ -133,8 +125,8 @@
assert rev1.getReffering().equals(Collections.EMPTY_SET);
assert rev2.getReffering().equals(Collections.EMPTY_SET);
- assert rev3.getReffering().equals(makeSet(ing1));
- assert rev4.getReffering().equals(makeSet(ing1, ing2));
+ assert rev3.getReffering().equals(TestTools.makeSet(ing1));
+ assert rev4.getReffering().equals(TestTools.makeSet(ing1, ing2));
}
@Test
Copied:
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedList.java
(from rev 117,
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedSet.java)
===================================================================
---
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedList.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedList.java 2008-08-21
11:30:54 UTC (rev 118)
@@ -0,0 +1,115 @@
+package org.jboss.envers.test.integration.onetomany.unidirectional;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.entities.onetomany.unidirectional.ListRefCollEntity;
+import org.jboss.envers.test.entities.StrTestEntity;
+import org.jboss.envers.test.tools.TestTools;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.persistence.EntityManager;
+import java.util.Arrays;
+import java.util.ArrayList;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class BasicNotOwnedList extends AbstractEntityTest {
+ private Integer str1_id;
+ private Integer str2_id;
+
+ private Integer coll1_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(StrTestEntity.class);
+ cfg.addAnnotatedClass(ListRefCollEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ StrTestEntity str1 = new StrTestEntity("str1");
+ StrTestEntity str2 = new StrTestEntity("str2");
+
+ ListRefCollEntity coll1 = new ListRefCollEntity(3, "coll1");
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ em.persist(str1);
+ em.persist(str2);
+
+ coll1.setCollection(new ArrayList<StrTestEntity>());
+ coll1.getCollection().add(str1);
+ em.persist(coll1);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+
+ str2 = em.find(StrTestEntity.class, str2.getId());
+ coll1 = em.find(ListRefCollEntity.class, coll1.getId());
+
+ coll1.getCollection().add(str2);
+
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+
+ str1 = em.find(StrTestEntity.class, str1.getId());
+ coll1 = em.find(ListRefCollEntity.class, coll1.getId());
+
+ coll1.getCollection().remove(str1);
+
+ em.getTransaction().commit();
+
+ // Revision 4
+ em.getTransaction().begin();
+
+ coll1 = em.find(ListRefCollEntity.class, coll1.getId());
+
+ coll1.getCollection().clear();
+
+ em.getTransaction().commit();
+
+ //
+
+ str1_id = str1.getId();
+ str2_id = str2.getId();
+
+ coll1_id = coll1.getId();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ assert Arrays.asList(1, 2, 3,
4).equals(getVersionsReader().getRevisions(ListRefCollEntity.class, coll1_id));
+
+ assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(StrTestEntity.class, str1_id));
+ assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(StrTestEntity.class, str2_id));
+ }
+
+ @Test
+ public void testHistoryOfColl1() {
+ StrTestEntity str1 = getEntityManager().find(StrTestEntity.class, str1_id);
+ StrTestEntity str2 = getEntityManager().find(StrTestEntity.class, str2_id);
+
+ ListRefCollEntity rev1 = getVersionsReader().find(ListRefCollEntity.class,
coll1_id, 1);
+ ListRefCollEntity rev2 = getVersionsReader().find(ListRefCollEntity.class,
coll1_id, 2);
+ ListRefCollEntity rev3 = getVersionsReader().find(ListRefCollEntity.class,
coll1_id, 3);
+ ListRefCollEntity rev4 = getVersionsReader().find(ListRefCollEntity.class,
coll1_id, 4);
+
+ assert TestTools.checkList(rev1.getCollection(), str1);
+ assert TestTools.checkList(rev2.getCollection(), str1, str2);
+ assert TestTools.checkList(rev3.getCollection(), str2);
+ assert TestTools.checkList(rev4.getCollection());
+
+ assert "coll1".equals(rev1.getData());
+ assert "coll1".equals(rev2.getData());
+ assert "coll1".equals(rev3.getData());
+ assert "coll1".equals(rev4.getData());
+ }
+}
\ No newline at end of file
Property changes on:
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedList.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified:
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedSet.java
===================================================================
---
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedSet.java 2008-08-21
11:18:53 UTC (rev 117)
+++
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedSet.java 2008-08-21
11:30:54 UTC (rev 118)
@@ -3,13 +3,13 @@
import org.jboss.envers.test.integration.AbstractEntityTest;
import org.jboss.envers.test.entities.onetomany.unidirectional.SetRefCollEntity;
import org.jboss.envers.test.entities.StrTestEntity;
+import org.jboss.envers.test.tools.TestTools;
import org.hibernate.ejb.Ejb3Configuration;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.persistence.EntityManager;
import java.util.Arrays;
-import java.util.Set;
import java.util.HashSet;
/**
@@ -92,13 +92,6 @@
assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(StrTestEntity.class, str2_id));
}
- @SuppressWarnings({"ManualArrayToCollectionCopy"})
- private <T> Set<T> makeSet(T... objects) {
- Set<T> ret = new HashSet<T>();
- for (T obj : objects) { ret.add(obj); }
- return ret;
- }
-
@Test
public void testHistoryOfColl1() {
StrTestEntity str1 = getEntityManager().find(StrTestEntity.class, str1_id);
@@ -109,15 +102,14 @@
SetRefCollEntity rev3 = getVersionsReader().find(SetRefCollEntity.class,
coll1_id, 3);
SetRefCollEntity rev4 = getVersionsReader().find(SetRefCollEntity.class,
coll1_id, 4);
- assert rev1.getCollection().equals(makeSet(str1));
- assert rev2.getCollection().equals(makeSet(str1, str2));
- assert rev3.getCollection().equals(makeSet(str2));
- assert rev4.getCollection().equals(makeSet());
+ assert rev1.getCollection().equals(TestTools.makeSet(str1));
+ assert rev2.getCollection().equals(TestTools.makeSet(str1, str2));
+ assert rev3.getCollection().equals(TestTools.makeSet(str2));
+ assert rev4.getCollection().equals(TestTools.makeSet());
assert "coll1".equals(rev1.getData());
assert "coll1".equals(rev2.getData());
assert "coll1".equals(rev3.getData());
assert "coll1".equals(rev4.getData());
-
}
}
Copied:
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/DataChangesNotOwnedSet.java
(from rev 117,
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/BasicNotOwnedSet.java)
===================================================================
---
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/DataChangesNotOwnedSet.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/DataChangesNotOwnedSet.java 2008-08-21
11:30:54 UTC (rev 118)
@@ -0,0 +1,84 @@
+package org.jboss.envers.test.integration.onetomany.unidirectional;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.entities.onetomany.unidirectional.SetRefCollEntity;
+import org.jboss.envers.test.entities.StrTestEntity;
+import org.jboss.envers.test.tools.TestTools;
+import org.hibernate.ejb.Ejb3Configuration;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.persistence.EntityManager;
+import java.util.Arrays;
+import java.util.HashSet;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class DataChangesNotOwnedSet extends AbstractEntityTest {
+ private Integer str1_id;
+
+ private Integer coll1_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(StrTestEntity.class);
+ cfg.addAnnotatedClass(SetRefCollEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ StrTestEntity str1 = new StrTestEntity("str1");
+
+ SetRefCollEntity coll1 = new SetRefCollEntity(3, "coll1");
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ em.persist(str1);
+
+ coll1.setCollection(new HashSet<StrTestEntity>());
+ em.persist(coll1);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+ em.getTransaction().begin();
+
+ str1 = em.find(StrTestEntity.class, str1.getId());
+ coll1 = em.find(SetRefCollEntity.class, coll1.getId());
+
+ coll1.getCollection().add(str1);
+ coll1.setData("coll2");
+
+ em.getTransaction().commit();
+
+ //
+
+ str1_id = str1.getId();
+
+ coll1_id = coll1.getId();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ assert Arrays.asList(1,
2).equals(getVersionsReader().getRevisions(SetRefCollEntity.class, coll1_id));
+
+ assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(StrTestEntity.class, str1_id));
+ }
+
+ @Test
+ public void testHistoryOfColl1() {
+ StrTestEntity str1 = getEntityManager().find(StrTestEntity.class, str1_id);
+
+ SetRefCollEntity rev1 = getVersionsReader().find(SetRefCollEntity.class,
coll1_id, 1);
+ SetRefCollEntity rev2 = getVersionsReader().find(SetRefCollEntity.class,
coll1_id, 2);
+
+ assert rev1.getCollection().equals(TestTools.makeSet());
+ assert rev2.getCollection().equals(TestTools.makeSet(str1));
+
+ assert "coll1".equals(rev1.getData());
+ assert "coll2".equals(rev2.getData());
+ }
+}
\ No newline at end of file
Property changes on:
trunk/src/test/org/jboss/envers/test/integration/onetomany/unidirectional/DataChangesNotOwnedSet.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: trunk/src/test/org/jboss/envers/test/tools/TestTools.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/tools/TestTools.java 2008-08-21 11:18:53 UTC (rev
117)
+++ trunk/src/test/org/jboss/envers/test/tools/TestTools.java 2008-08-21 11:30:54 UTC (rev
118)
@@ -2,6 +2,7 @@
import java.util.Set;
import java.util.HashSet;
+import java.util.List;
/**
* @author Adam Warski (adam at warski dot org)
@@ -16,4 +17,18 @@
return ret;
}
+
+ public static <T> boolean checkList(List<T> list, T... objects) {
+ if (list.size() != objects.length) {
+ return false;
+ }
+
+ for (T obj : objects) {
+ if (!list.contains(obj)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
}