r2531 - trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11
Author: tchemit Date: 2012-05-25 15:38:43 +0200 (Fri, 25 May 2012) New Revision: 2531 Url: http://nuiton.org/repositories/revision/topia/2531 Log: add mapping tests for unique and not-null tag-values Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/EntityWithBasicUniqueFieldsTest.java trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyUniqueTest.java trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyUniqueTest.java trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/EntityWithBasicUniqueFieldsTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/EntityWithBasicUniqueFieldsTest.java (rev 0) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/EntityWithBasicUniqueFieldsTest.java 2012-05-25 13:38:43 UTC (rev 2531) @@ -0,0 +1,76 @@ +package org.nuiton.topia.tck.mapping.test11; + +import junit.framework.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.tck.mapping.AbstractMappingTest; + +/** + * Tests basic unique fields on a entity. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class EntityWithBasicUniqueFieldsTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A11EDAO aDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A11E.class); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + + Assert.assertEquals(0, nbA); + + // a with all fields to null + A11E a = aDAO.create(); + + tx.commitTransaction(); + + nbA = aDAO.count(); + Assert.assertEquals(1, nbA); + + A11E aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + + // try another one with null value, can do it since null is not unique ? + A11E a2 = aDAO.create(); + tx.commitTransaction(); + + nbA = aDAO.count(); + Assert.assertEquals(2, nbA); + + aBis = aDAO.findByTopiaId(a2.getTopiaId()); + Assert.assertEquals(a2, aBis); + + A11E a3 = aDAO.create(A11E.PROPERTY_INTEGER_FIELD, 1); + tx.commitTransaction(); + + nbA = aDAO.count(); + Assert.assertEquals(3, nbA); + + aBis = aDAO.findByTopiaId(a3.getTopiaId()); + Assert.assertEquals(a3, aBis); + + A11E a4 = aDAO.create(A11E.PROPERTY_INTEGER_FIELD, 1); + try { + tx.commitTransaction(); + Assert.fail(); + + } catch (TopiaException e) { + // ok duplicate key + tx.rollbackTransaction(); + } + + } +} \ No newline at end of file Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyUniqueTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyUniqueTest.java (rev 0) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyUniqueTest.java 2012-05-25 13:38:43 UTC (rev 2531) @@ -0,0 +1,65 @@ +package org.nuiton.topia.tck.mapping.test11; + +import junit.framework.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.tck.mapping.AbstractMappingTest; + +import java.util.Collection; +import java.util.Iterator; + +/** + * Tests the tag-value {@code unique} on a {@code ManyToMany} relation. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class SimpleManyToManyUniqueTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A11CDAO aDAO; + + protected B11CDAO bDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A11C.class); + bDAO = getDAO(tx, B11C.class); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + long nbB = bDAO.count(); + + Assert.assertEquals(0, nbA); + Assert.assertEquals(0, nbB); + + A11C a = aDAO.create(); + B11C b = bDAO.create(); + + a.addB11C(b); + a.addB11C(b); + + tx.commitTransaction(); + + nbA = aDAO.count(); + nbB = bDAO.count(); + + Assert.assertEquals(1, nbA); + Assert.assertEquals(1, nbB); + + A11C aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(1, aBis.sizeB11C()); + Collection<B11C> bs = aBis.getB11C(); + Iterator<B11C> iterator = bs.iterator(); + Assert.assertEquals(b, iterator.next()); + + } +} \ No newline at end of file Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java (rev 0) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java 2012-05-25 13:38:43 UTC (rev 2531) @@ -0,0 +1,66 @@ +package org.nuiton.topia.tck.mapping.test11; + +import junit.framework.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.tck.mapping.AbstractMappingTest; + +import java.util.Collection; +import java.util.Iterator; + +/** + * Tests the tag-value {@code unique} on a {@code ManyToMany} relation with a + * renamed role. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class SimpleManyToManyWithRoleNamedUniqueTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A11DDAO aDAO; + + protected B11DDAO bDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A11D.class); + bDAO = getDAO(tx, B11D.class); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + long nbB = bDAO.count(); + + Assert.assertEquals(0, nbA); + Assert.assertEquals(0, nbB); + + A11D a = aDAO.create(); + B11D b = bDAO.create(); + + a.addRoleB113(b); + a.addRoleB113(b); + + tx.commitTransaction(); + + nbA = aDAO.count(); + nbB = bDAO.count(); + + Assert.assertEquals(1, nbA); + Assert.assertEquals(1, nbB); + + A11D aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(1, aBis.sizeRoleB113()); + Collection<B11D> bs = aBis.getRoleB113(); + Iterator<B11D> iterator = bs.iterator(); + Assert.assertEquals(b, iterator.next()); + + } +} \ No newline at end of file Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyUniqueTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyUniqueTest.java (rev 0) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyUniqueTest.java 2012-05-25 13:38:43 UTC (rev 2531) @@ -0,0 +1,65 @@ +package org.nuiton.topia.tck.mapping.test11; + +import junit.framework.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.tck.mapping.AbstractMappingTest; + +import java.util.Collection; +import java.util.Iterator; + +/** + * Tests the tag-value {@code unique} on a {@code OneToMany} relation. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class SimpleOneToManyUniqueTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A11ADAO aDAO; + + protected B11ADAO bDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A11A.class); + bDAO = getDAO(tx, B11A.class); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + long nbB = bDAO.count(); + + Assert.assertEquals(0, nbA); + Assert.assertEquals(0, nbB); + + A11A a = aDAO.create(); + B11A b = bDAO.create(); + + a.addB11A(b); + a.addB11A(b); + + tx.commitTransaction(); + + nbA = aDAO.count(); + nbB = bDAO.count(); + + Assert.assertEquals(1, nbA); + Assert.assertEquals(1, nbB); + + A11A aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(1, aBis.sizeB11A()); + Collection<B11A> bs = aBis.getB11A(); + Iterator<B11A> iterator = bs.iterator(); + Assert.assertEquals(b, iterator.next()); + + } +} \ No newline at end of file Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java (rev 0) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java 2012-05-25 13:38:43 UTC (rev 2531) @@ -0,0 +1,66 @@ +package org.nuiton.topia.tck.mapping.test11; + +import junit.framework.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.tck.mapping.AbstractMappingTest; + +import java.util.Collection; +import java.util.Iterator; + +/** + * Tests the tag-value {@code unique} on a {@code OneToMany} relation with a + * renamed role. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class SimpleOneToManyWithRoleNamedUniqueTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A11BDAO aDAO; + + protected B11BDAO bDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A11B.class); + bDAO = getDAO(tx, B11B.class); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + long nbB = bDAO.count(); + + Assert.assertEquals(0, nbA); + Assert.assertEquals(0, nbB); + + A11B a = aDAO.create(); + B11B b = bDAO.create(); + + a.addRoleB111(b); + a.addRoleB111(b); + + tx.commitTransaction(); + + nbA = aDAO.count(); + nbB = bDAO.count(); + + Assert.assertEquals(1, nbA); + Assert.assertEquals(1, nbB); + + A11B aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(1, aBis.sizeRoleB111()); + Collection<B11B> bs = aBis.getRoleB111(); + Iterator<B11B> iterator = bs.iterator(); + Assert.assertEquals(b, iterator.next()); + + } +} \ No newline at end of file
participants (1)
-
tchemit@users.nuiton.org