Author: adamw
Date: 2008-08-22 11:22:20 -0400 (Fri, 22 Aug 2008)
New Revision: 123
Added:
trunk/src/test/org/jboss/envers/test/entities/manytomany/
trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwnedEntity.java
trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwningEntity.java
trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwnedEntity.java
trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwningEntity.java
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwnedUniEntity.java
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwningUniEntity.java
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwnedUniEntity.java
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwningUniEntity.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/
trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java
Modified:
trunk/src/test/org/jboss/envers/test/working/WorkingEntity2.java
Log:
ENVERS-24: tests for many-to-many relations
Added: trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwnedEntity.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwnedEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwnedEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,84 @@
+package org.jboss.envers.test.entities.manytomany;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import java.util.List;
+
+/**
+ * Many-to-many not-owning entity
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class ListOwnedEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ @Versioned
+ @ManyToMany(mappedBy="referencing")
+ private List<ListOwningEntity> referencing;
+
+ public ListOwnedEntity() {
+ }
+
+ public ListOwnedEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public ListOwnedEntity(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<ListOwningEntity> getReferencing() {
+ return referencing;
+ }
+
+ public void setReferencing(List<ListOwningEntity> referencing) {
+ this.referencing = referencing;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ListOwnedEntity)) return false;
+
+ ListOwnedEntity that = (ListOwnedEntity) 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 "SetOwnedEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Added: trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwningEntity.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwningEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/ListOwningEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,81 @@
+package org.jboss.envers.test.entities.manytomany;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.*;
+import java.util.List;
+
+/**
+ * Entity owning the many-to-many relation
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class ListOwningEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ @Versioned
+ @ManyToMany
+ private List<ListOwnedEntity> references;
+
+ public ListOwningEntity() { }
+
+ public ListOwningEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public ListOwningEntity(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<ListOwnedEntity> getReferences() {
+ return references;
+ }
+
+ public void setReferences(List<ListOwnedEntity> references) {
+ this.references = references;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ListOwningEntity)) return false;
+
+ ListOwningEntity that = (ListOwningEntity) 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 "SetOwningEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Copied: trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwnedEntity.java (from
rev 112, trunk/src/test/org/jboss/envers/test/entities/onetomany/SetRefEdEntity.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwnedEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwnedEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,84 @@
+package org.jboss.envers.test.entities.manytomany;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import java.util.Set;
+
+/**
+ * Many-to-many not-owning entity
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class SetOwnedEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ @Versioned
+ @ManyToMany(mappedBy="referencing")
+ private Set<SetOwningEntity> referencing;
+
+ public SetOwnedEntity() {
+ }
+
+ public SetOwnedEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public SetOwnedEntity(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 Set<SetOwningEntity> getReferencing() {
+ return referencing;
+ }
+
+ public void setReferencing(Set<SetOwningEntity> referencing) {
+ this.referencing = referencing;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof SetOwnedEntity)) return false;
+
+ SetOwnedEntity that = (SetOwnedEntity) 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 "SetOwnedEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Property changes on:
trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwnedEntity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwningEntity.java
(from rev 112,
trunk/src/test/org/jboss/envers/test/entities/onetomany/SetRefIngEntity.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwningEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwningEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,81 @@
+package org.jboss.envers.test.entities.manytomany;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.*;
+import java.util.Set;
+
+/**
+ * Entity owning the many-to-many relation
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class SetOwningEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ @Versioned
+ @ManyToMany
+ private Set<SetOwnedEntity> references;
+
+ public SetOwningEntity() { }
+
+ public SetOwningEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public SetOwningEntity(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 Set<SetOwnedEntity> getReferences() {
+ return references;
+ }
+
+ public void setReferences(Set<SetOwnedEntity> references) {
+ this.references = references;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof SetOwningEntity)) return false;
+
+ SetOwningEntity that = (SetOwningEntity) 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 "SetOwningEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Property changes on:
trunk/src/test/org/jboss/envers/test/entities/manytomany/SetOwningEntity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added:
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwnedUniEntity.java
===================================================================
---
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwnedUniEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwnedUniEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,70 @@
+package org.jboss.envers.test.entities.manytomany.unidirectional;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+/**
+ * Many-to-many not-owning entity
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class ListOwnedUniEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ public ListOwnedUniEntity() {
+ }
+
+ public ListOwnedUniEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public ListOwnedUniEntity(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 boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ListOwnedUniEntity)) return false;
+
+ ListOwnedUniEntity that = (ListOwnedUniEntity) 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 "SetOwnedEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Added:
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwningUniEntity.java
===================================================================
---
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwningUniEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/ListOwningUniEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,81 @@
+package org.jboss.envers.test.entities.manytomany.unidirectional;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.*;
+import java.util.List;
+
+/**
+ * Entity owning the many-to-many relation
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class ListOwningUniEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ @Versioned
+ @ManyToMany
+ private List<ListOwnedUniEntity> references;
+
+ public ListOwningUniEntity() { }
+
+ public ListOwningUniEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public ListOwningUniEntity(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<ListOwnedUniEntity> getReferences() {
+ return references;
+ }
+
+ public void setReferences(List<ListOwnedUniEntity> references) {
+ this.references = references;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ListOwningUniEntity)) return false;
+
+ ListOwningUniEntity that = (ListOwningUniEntity) 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 "SetOwningEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Added:
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwnedUniEntity.java
===================================================================
---
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwnedUniEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwnedUniEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,70 @@
+package org.jboss.envers.test.entities.manytomany.unidirectional;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+/**
+ * Many-to-many not-owning entity
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class SetOwnedUniEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ public SetOwnedUniEntity() {
+ }
+
+ public SetOwnedUniEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public SetOwnedUniEntity(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 boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof SetOwnedUniEntity)) return false;
+
+ SetOwnedUniEntity that = (SetOwnedUniEntity) 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 "SetOwnedUniEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Added:
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwningUniEntity.java
===================================================================
---
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwningUniEntity.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/entities/manytomany/unidirectional/SetOwningUniEntity.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,81 @@
+package org.jboss.envers.test.entities.manytomany.unidirectional;
+
+import org.jboss.envers.Versioned;
+
+import javax.persistence.*;
+import java.util.Set;
+
+/**
+ * Entity owning the many-to-many relation
+ * @author Adam Warski (adam at warski dot org)
+ */
+@Entity
+public class SetOwningUniEntity {
+ @Id
+ private Integer id;
+
+ @Versioned
+ private String data;
+
+ @Versioned
+ @ManyToMany
+ private Set<SetOwnedUniEntity> references;
+
+ public SetOwningUniEntity() { }
+
+ public SetOwningUniEntity(Integer id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public SetOwningUniEntity(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 Set<SetOwnedUniEntity> getReferences() {
+ return references;
+ }
+
+ public void setReferences(Set<SetOwnedUniEntity> references) {
+ this.references = references;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof SetOwningUniEntity)) return false;
+
+ SetOwningUniEntity that = (SetOwningUniEntity) 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 "SetOwningUniEntity(id = " + id + ", data = " + data +
")";
+ }
+}
\ No newline at end of file
Copied: trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java (from
rev 118, trunk/src/test/org/jboss/envers/test/integration/onetomany/BasicSet.java)
===================================================================
--- trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java
(rev 0)
+++ trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,189 @@
+package org.jboss.envers.test.integration.manytomany;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.entities.manytomany.SetOwningEntity;
+import org.jboss.envers.test.entities.manytomany.SetOwnedEntity;
+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.Collections;
+import java.util.HashSet;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class BasicSet extends AbstractEntityTest {
+ private Integer ed1_id;
+ private Integer ed2_id;
+
+ private Integer ing1_id;
+ private Integer ing2_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(SetOwningEntity.class);
+ cfg.addAnnotatedClass(SetOwnedEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ SetOwnedEntity ed1 = new SetOwnedEntity(1, "data_ed_1");
+ SetOwnedEntity ed2 = new SetOwnedEntity(2, "data_ed_2");
+
+ SetOwningEntity ing1 = new SetOwningEntity(3, "data_ing_1");
+ SetOwningEntity ing2 = new SetOwningEntity(4, "data_ing_2");
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ em.persist(ed1);
+ em.persist(ed2);
+ em.persist(ing1);
+ em.persist(ing2);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningEntity.class, ing1.getId());
+ ing2 = em.find(SetOwningEntity.class, ing2.getId());
+ ed1 = em.find(SetOwnedEntity.class, ed1.getId());
+ ed2 = em.find(SetOwnedEntity.class, ed2.getId());
+
+ ing1.setReferences(new HashSet<SetOwnedEntity>());
+ ing1.getReferences().add(ed1);
+
+ ing2.setReferences(new HashSet<SetOwnedEntity>());
+ ing2.getReferences().add(ed1);
+ ing2.getReferences().add(ed2);
+
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningEntity.class, ing1.getId());
+ ed2 = em.find(SetOwnedEntity.class, ed2.getId());
+ ed1 = em.find(SetOwnedEntity.class, ed1.getId());
+
+ ing1.getReferences().add(ed2);
+
+ em.getTransaction().commit();
+
+ // Revision 4
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningEntity.class, ing1.getId());
+ ed2 = em.find(SetOwnedEntity.class, ed2.getId());
+ ed1 = em.find(SetOwnedEntity.class, ed1.getId());
+
+ ing1.getReferences().remove(ed1);
+
+ em.getTransaction().commit();
+
+ // Revision 5
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningEntity.class, ing1.getId());
+
+ ing1.setReferences(null);
+
+ em.getTransaction().commit();
+
+ //
+
+ ed1_id = ed1.getId();
+ ed2_id = ed2.getId();
+
+ ing1_id = ing1.getId();
+ ing2_id = ing1.getId();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ assert Arrays.asList(1, 2,
4).equals(getVersionsReader().getRevisions(SetOwnedEntity.class, ed1_id));
+ assert Arrays.asList(1, 2, 3,
5).equals(getVersionsReader().getRevisions(SetOwnedEntity.class, ed2_id));
+
+ assert Arrays.asList(1, 2, 3, 4,
5).equals(getVersionsReader().getRevisions(SetOwningEntity.class, ing1_id));
+ assert Arrays.asList(1,
2).equals(getVersionsReader().getRevisions(SetOwningEntity.class, ing2_id));
+ }
+
+ @Test
+ public void testHistoryOfEdId1() {
+ SetOwningEntity ing1 = getEntityManager().find(SetOwningEntity.class, ing1_id);
+ SetOwningEntity ing2 = getEntityManager().find(SetOwningEntity.class, ing2_id);
+
+ SetOwnedEntity rev1 = getVersionsReader().find(SetOwnedEntity.class, ed1_id, 1);
+ SetOwnedEntity rev2 = getVersionsReader().find(SetOwnedEntity.class, ed1_id, 2);
+ SetOwnedEntity rev3 = getVersionsReader().find(SetOwnedEntity.class, ed1_id, 3);
+ SetOwnedEntity rev4 = getVersionsReader().find(SetOwnedEntity.class, ed1_id, 4);
+ SetOwnedEntity rev5 = getVersionsReader().find(SetOwnedEntity.class, ed1_id, 5);
+
+ assert rev1.getReferencing().equals(Collections.EMPTY_SET);
+ assert rev2.getReferencing().equals(TestTools.makeSet(ing1, ing2));
+ assert rev3.getReferencing().equals(TestTools.makeSet(ing1, ing2));
+ assert rev4.getReferencing().equals(TestTools.makeSet(ing2));
+ assert rev5.getReferencing().equals(TestTools.makeSet(ing2));
+ }
+
+ @Test
+ public void testHistoryOfEdId2() {
+ SetOwningEntity ing1 = getEntityManager().find(SetOwningEntity.class, ing1_id);
+ SetOwningEntity ing2 = getEntityManager().find(SetOwningEntity.class, ing2_id);
+
+ SetOwnedEntity rev1 = getVersionsReader().find(SetOwnedEntity.class, ed2_id, 1);
+ SetOwnedEntity rev2 = getVersionsReader().find(SetOwnedEntity.class, ed2_id, 2);
+ SetOwnedEntity rev3 = getVersionsReader().find(SetOwnedEntity.class, ed2_id, 3);
+ SetOwnedEntity rev4 = getVersionsReader().find(SetOwnedEntity.class, ed2_id, 4);
+ SetOwnedEntity rev5 = getVersionsReader().find(SetOwnedEntity.class, ed2_id, 5);
+
+ assert rev1.getReferencing().equals(Collections.EMPTY_SET);
+ assert rev2.getReferencing().equals(TestTools.makeSet(ing2));
+ assert rev3.getReferencing().equals(TestTools.makeSet(ing1, ing2));
+ assert rev4.getReferencing().equals(TestTools.makeSet(ing1, ing2));
+ assert rev5.getReferencing().equals(TestTools.makeSet(ing2));
+ }
+
+ @Test
+ public void testHistoryOfEdIng1() {
+ SetOwnedEntity ed1 = getEntityManager().find(SetOwnedEntity.class, ed1_id);
+ SetOwnedEntity ed2 = getEntityManager().find(SetOwnedEntity.class, ed2_id);
+
+ SetOwningEntity rev1 = getVersionsReader().find(SetOwningEntity.class, ing1_id,
1);
+ SetOwningEntity rev2 = getVersionsReader().find(SetOwningEntity.class, ing1_id,
2);
+ SetOwningEntity rev3 = getVersionsReader().find(SetOwningEntity.class, ing1_id,
3);
+ SetOwningEntity rev4 = getVersionsReader().find(SetOwningEntity.class, ing1_id,
4);
+ SetOwningEntity rev5 = getVersionsReader().find(SetOwningEntity.class, ing1_id,
5);
+
+ assert rev1.getReferences().equals(Collections.EMPTY_SET);
+ assert rev2.getReferences().equals(TestTools.makeSet(ed1));
+ assert rev3.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev4.getReferences().equals(TestTools.makeSet(ed2));
+ assert rev5.getReferences().equals(Collections.EMPTY_SET);
+ }
+
+ @Test
+ public void testHistoryOfEdIng2() {
+ SetOwnedEntity ed1 = getEntityManager().find(SetOwnedEntity.class, ed1_id);
+ SetOwnedEntity ed2 = getEntityManager().find(SetOwnedEntity.class, ed2_id);
+
+ SetOwningEntity rev1 = getVersionsReader().find(SetOwningEntity.class, ing2_id,
1);
+ SetOwningEntity rev2 = getVersionsReader().find(SetOwningEntity.class, ing2_id,
2);
+ SetOwningEntity rev3 = getVersionsReader().find(SetOwningEntity.class, ing2_id,
3);
+ SetOwningEntity rev4 = getVersionsReader().find(SetOwningEntity.class, ing2_id,
4);
+ SetOwningEntity rev5 = getVersionsReader().find(SetOwningEntity.class, ing2_id,
5);
+
+ assert rev1.getReferences().equals(Collections.EMPTY_SET);
+ assert rev2.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev3.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev4.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev5.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ }
+}
\ No newline at end of file
Property changes on:
trunk/src/test/org/jboss/envers/test/integration/manytomany/BasicSet.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added:
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java
===================================================================
---
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniList.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,153 @@
+package org.jboss.envers.test.integration.manytomany.unidirectional;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.entities.manytomany.unidirectional.ListOwnedUniEntity;
+import org.jboss.envers.test.entities.manytomany.unidirectional.ListOwningUniEntity;
+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.Collections;
+import java.util.ArrayList;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class BasicUniList extends AbstractEntityTest {
+ private Integer ed1_id;
+ private Integer ed2_id;
+
+ private Integer ing1_id;
+ private Integer ing2_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(ListOwningUniEntity.class);
+ cfg.addAnnotatedClass(ListOwnedUniEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ ListOwnedUniEntity ed1 = new ListOwnedUniEntity(1, "data_ed_1");
+ ListOwnedUniEntity ed2 = new ListOwnedUniEntity(2, "data_ed_2");
+
+ ListOwningUniEntity ing1 = new ListOwningUniEntity(3, "data_ing_1");
+ ListOwningUniEntity ing2 = new ListOwningUniEntity(4, "data_ing_2");
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ em.persist(ed1);
+ em.persist(ed2);
+ em.persist(ing1);
+ em.persist(ing2);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+
+ em.getTransaction().begin();
+
+ ing1 = em.find(ListOwningUniEntity.class, ing1.getId());
+ ing2 = em.find(ListOwningUniEntity.class, ing2.getId());
+ ed1 = em.find(ListOwnedUniEntity.class, ed1.getId());
+ ed2 = em.find(ListOwnedUniEntity.class, ed2.getId());
+
+ ing1.setReferences(new ArrayList<ListOwnedUniEntity>());
+ ing1.getReferences().add(ed1);
+
+ ing2.setReferences(new ArrayList<ListOwnedUniEntity>());
+ ing2.getReferences().add(ed1);
+ ing2.getReferences().add(ed2);
+
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+
+ ing1 = em.find(ListOwningUniEntity.class, ing1.getId());
+ ed2 = em.find(ListOwnedUniEntity.class, ed2.getId());
+ ed1 = em.find(ListOwnedUniEntity.class, ed1.getId());
+
+ ing1.getReferences().add(ed2);
+
+ em.getTransaction().commit();
+
+ // Revision 4
+ em.getTransaction().begin();
+
+ ing1 = em.find(ListOwningUniEntity.class, ing1.getId());
+ ed2 = em.find(ListOwnedUniEntity.class, ed2.getId());
+ ed1 = em.find(ListOwnedUniEntity.class, ed1.getId());
+
+ ing1.getReferences().remove(ed1);
+
+ em.getTransaction().commit();
+
+ // Revision 5
+ em.getTransaction().begin();
+
+ ing1 = em.find(ListOwningUniEntity.class, ing1.getId());
+
+ ing1.setReferences(null);
+
+ em.getTransaction().commit();
+
+ //
+
+ ed1_id = ed1.getId();
+ ed2_id = ed2.getId();
+
+ ing1_id = ing1.getId();
+ ing2_id = ing2.getId();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(ListOwnedUniEntity.class,
ed1_id));
+ assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(ListOwnedUniEntity.class,
ed2_id));
+
+ assert Arrays.asList(1, 2, 3, 4,
5).equals(getVersionsReader().getRevisions(ListOwningUniEntity.class, ing1_id));
+ assert Arrays.asList(1,
2).equals(getVersionsReader().getRevisions(ListOwningUniEntity.class, ing2_id));
+ }
+
+ @Test
+ public void testHistoryOfEdIng1() {
+ ListOwnedUniEntity ed1 = getEntityManager().find(ListOwnedUniEntity.class,
ed1_id);
+ ListOwnedUniEntity ed2 = getEntityManager().find(ListOwnedUniEntity.class,
ed2_id);
+
+ ListOwningUniEntity rev1 = getVersionsReader().find(ListOwningUniEntity.class,
ing1_id, 1);
+ ListOwningUniEntity rev2 = getVersionsReader().find(ListOwningUniEntity.class,
ing1_id, 2);
+ ListOwningUniEntity rev3 = getVersionsReader().find(ListOwningUniEntity.class,
ing1_id, 3);
+ ListOwningUniEntity rev4 = getVersionsReader().find(ListOwningUniEntity.class,
ing1_id, 4);
+ ListOwningUniEntity rev5 = getVersionsReader().find(ListOwningUniEntity.class,
ing1_id, 5);
+
+ assert rev1.getReferences().equals(Collections.EMPTY_LIST);
+ assert TestTools.checkList(rev2.getReferences(), ed1);
+ assert TestTools.checkList(rev3.getReferences(), ed1, ed2);
+ assert TestTools.checkList(rev4.getReferences(), ed2);
+ assert rev5.getReferences().equals(Collections.EMPTY_LIST);
+ }
+
+ @Test
+ public void testHistoryOfEdIng2() {
+ ListOwnedUniEntity ed1 = getEntityManager().find(ListOwnedUniEntity.class,
ed1_id);
+ ListOwnedUniEntity ed2 = getEntityManager().find(ListOwnedUniEntity.class,
ed2_id);
+
+ ListOwningUniEntity rev1 = getVersionsReader().find(ListOwningUniEntity.class,
ing2_id, 1);
+ ListOwningUniEntity rev2 = getVersionsReader().find(ListOwningUniEntity.class,
ing2_id, 2);
+ ListOwningUniEntity rev3 = getVersionsReader().find(ListOwningUniEntity.class,
ing2_id, 3);
+ ListOwningUniEntity rev4 = getVersionsReader().find(ListOwningUniEntity.class,
ing2_id, 4);
+ ListOwningUniEntity rev5 = getVersionsReader().find(ListOwningUniEntity.class,
ing2_id, 5);
+
+ assert rev1.getReferences().equals(Collections.EMPTY_LIST);
+ assert TestTools.checkList(rev2.getReferences(), ed1, ed2);
+ assert TestTools.checkList(rev3.getReferences(), ed1, ed2);
+ assert TestTools.checkList(rev4.getReferences(), ed1, ed2);
+ assert TestTools.checkList(rev5.getReferences(), ed1, ed2);
+ }
+}
\ No newline at end of file
Added:
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java
===================================================================
---
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java
(rev 0)
+++
trunk/src/test/org/jboss/envers/test/integration/manytomany/unidirectional/BasicUniSet.java 2008-08-22
15:22:20 UTC (rev 123)
@@ -0,0 +1,153 @@
+package org.jboss.envers.test.integration.manytomany.unidirectional;
+
+import org.jboss.envers.test.integration.AbstractEntityTest;
+import org.jboss.envers.test.entities.manytomany.unidirectional.SetOwnedUniEntity;
+import org.jboss.envers.test.entities.manytomany.unidirectional.SetOwningUniEntity;
+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.Collections;
+import java.util.HashSet;
+
+/**
+ * @author Adam Warski (adam at warski dot org)
+ */
+public class BasicUniSet extends AbstractEntityTest {
+ private Integer ed1_id;
+ private Integer ed2_id;
+
+ private Integer ing1_id;
+ private Integer ing2_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ cfg.addAnnotatedClass(SetOwningUniEntity.class);
+ cfg.addAnnotatedClass(SetOwnedUniEntity.class);
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ SetOwnedUniEntity ed1 = new SetOwnedUniEntity(1, "data_ed_1");
+ SetOwnedUniEntity ed2 = new SetOwnedUniEntity(2, "data_ed_2");
+
+ SetOwningUniEntity ing1 = new SetOwningUniEntity(3, "data_ing_1");
+ SetOwningUniEntity ing2 = new SetOwningUniEntity(4, "data_ing_2");
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ em.persist(ed1);
+ em.persist(ed2);
+ em.persist(ing1);
+ em.persist(ing2);
+
+ em.getTransaction().commit();
+
+ // Revision 2
+
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningUniEntity.class, ing1.getId());
+ ing2 = em.find(SetOwningUniEntity.class, ing2.getId());
+ ed1 = em.find(SetOwnedUniEntity.class, ed1.getId());
+ ed2 = em.find(SetOwnedUniEntity.class, ed2.getId());
+
+ ing1.setReferences(new HashSet<SetOwnedUniEntity>());
+ ing1.getReferences().add(ed1);
+
+ ing2.setReferences(new HashSet<SetOwnedUniEntity>());
+ ing2.getReferences().add(ed1);
+ ing2.getReferences().add(ed2);
+
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningUniEntity.class, ing1.getId());
+ ed2 = em.find(SetOwnedUniEntity.class, ed2.getId());
+ ed1 = em.find(SetOwnedUniEntity.class, ed1.getId());
+
+ ing1.getReferences().add(ed2);
+
+ em.getTransaction().commit();
+
+ // Revision 4
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningUniEntity.class, ing1.getId());
+ ed2 = em.find(SetOwnedUniEntity.class, ed2.getId());
+ ed1 = em.find(SetOwnedUniEntity.class, ed1.getId());
+
+ ing1.getReferences().remove(ed1);
+
+ em.getTransaction().commit();
+
+ // Revision 5
+ em.getTransaction().begin();
+
+ ing1 = em.find(SetOwningUniEntity.class, ing1.getId());
+
+ ing1.setReferences(null);
+
+ em.getTransaction().commit();
+
+ //
+
+ ed1_id = ed1.getId();
+ ed2_id = ed2.getId();
+
+ ing1_id = ing1.getId();
+ ing2_id = ing2.getId();
+ }
+
+ @Test
+ public void testRevisionsCounts() {
+ assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(SetOwnedUniEntity.class,
ed1_id));
+ assert
Arrays.asList(1).equals(getVersionsReader().getRevisions(SetOwnedUniEntity.class,
ed2_id));
+
+ assert Arrays.asList(1, 2, 3, 4,
5).equals(getVersionsReader().getRevisions(SetOwningUniEntity.class, ing1_id));
+ assert Arrays.asList(1,
2).equals(getVersionsReader().getRevisions(SetOwningUniEntity.class, ing2_id));
+ }
+
+ @Test
+ public void testHistoryOfEdIng1() {
+ SetOwnedUniEntity ed1 = getEntityManager().find(SetOwnedUniEntity.class,
ed1_id);
+ SetOwnedUniEntity ed2 = getEntityManager().find(SetOwnedUniEntity.class,
ed2_id);
+
+ SetOwningUniEntity rev1 = getVersionsReader().find(SetOwningUniEntity.class,
ing1_id, 1);
+ SetOwningUniEntity rev2 = getVersionsReader().find(SetOwningUniEntity.class,
ing1_id, 2);
+ SetOwningUniEntity rev3 = getVersionsReader().find(SetOwningUniEntity.class,
ing1_id, 3);
+ SetOwningUniEntity rev4 = getVersionsReader().find(SetOwningUniEntity.class,
ing1_id, 4);
+ SetOwningUniEntity rev5 = getVersionsReader().find(SetOwningUniEntity.class,
ing1_id, 5);
+
+ assert rev1.getReferences().equals(Collections.EMPTY_SET);
+ assert rev2.getReferences().equals(TestTools.makeSet(ed1));
+ assert rev3.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev4.getReferences().equals(TestTools.makeSet(ed2));
+ assert rev5.getReferences().equals(Collections.EMPTY_SET);
+ }
+
+ @Test
+ public void testHistoryOfEdIng2() {
+ SetOwnedUniEntity ed1 = getEntityManager().find(SetOwnedUniEntity.class,
ed1_id);
+ SetOwnedUniEntity ed2 = getEntityManager().find(SetOwnedUniEntity.class,
ed2_id);
+
+ SetOwningUniEntity rev1 = getVersionsReader().find(SetOwningUniEntity.class,
ing2_id, 1);
+ SetOwningUniEntity rev2 = getVersionsReader().find(SetOwningUniEntity.class,
ing2_id, 2);
+ SetOwningUniEntity rev3 = getVersionsReader().find(SetOwningUniEntity.class,
ing2_id, 3);
+ SetOwningUniEntity rev4 = getVersionsReader().find(SetOwningUniEntity.class,
ing2_id, 4);
+ SetOwningUniEntity rev5 = getVersionsReader().find(SetOwningUniEntity.class,
ing2_id, 5);
+
+ assert rev1.getReferences().equals(Collections.EMPTY_SET);
+ assert rev2.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev3.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev4.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ assert rev5.getReferences().equals(TestTools.makeSet(ed1, ed2));
+ }
+}
\ No newline at end of file
Modified: trunk/src/test/org/jboss/envers/test/working/WorkingEntity2.java
===================================================================
--- trunk/src/test/org/jboss/envers/test/working/WorkingEntity2.java 2008-08-22 12:19:38
UTC (rev 122)
+++ trunk/src/test/org/jboss/envers/test/working/WorkingEntity2.java 2008-08-22 15:22:20
UTC (rev 123)
@@ -22,13 +22,13 @@
private String str2;
@Versioned
- @OneToMany //(mappedBy="we2")
- //@ManyToMany
+ //@OneToMany //(mappedBy="we2")
+ @ManyToMany
//@Transient
private Set<WorkingEntity1> we1s;
//@Versioned
- //@OneToOne(mappedBy = "we2")
+ //@OneToOne
@Transient
private WorkingEntity1 we1;