Author: tchemit Date: 2012-05-23 15:17:19 +0200 (Wed, 23 May 2012) New Revision: 2504 Url: http://nuiton.org/repositories/revision/topia/2504 Log: new mapping tests Added: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderByTest.java trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderedTest.java Modified: trunk/topia-persistence-tck/src/main/xmi/topia-tck-mapping.zargo Added: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderByTest.java =================================================================== --- trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderByTest.java (rev 0) +++ trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderByTest.java 2012-05-23 13:17:19 UTC (rev 2504) @@ -0,0 +1,104 @@ +package org.nuiton.topia.tck.mapping.test7; + +import com.google.common.collect.Lists; +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; +import java.util.List; + +/** + * Tests the tag-value {@code ordere-by} on a {@code OneToMany} relation. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class SimpleOneToManyOrderByTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A71DAO aDAO; + + protected B71DAO bDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A71.class); + bDAO = getDAO(tx, B71.class); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + long nbB = bDAO.count(); + + Assert.assertEquals(0, nbA); + Assert.assertEquals(0, nbB); + + A71 a = aDAO.create(); + B71 b = bDAO.create(B71.PROPERTY_NAME, "A"); + B71 b2 = bDAO.create(B71.PROPERTY_NAME, "B"); + B71 b3 = bDAO.create(B71.PROPERTY_NAME, "C"); + + a.addB71(b); + a.addB71(b2); + + tx.commitTransaction(); + + nbA = aDAO.count(); + nbB = bDAO.count(); + + Assert.assertEquals(1, nbA); + Assert.assertEquals(3, nbB); + + A71 aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(2, aBis.sizeB71()); + Collection<B71> bs = aBis.getB71(); + Iterator<B71> iterator = bs.iterator(); + Assert.assertEquals(b, iterator.next()); + Assert.assertEquals(b2, iterator.next()); + + // change order + List<B71> bsBis; + + bsBis = Lists.newArrayList(); + bsBis.add(b2); + bsBis.add(b); + a.setB71(bsBis); + tx.commitTransaction(); + + aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(2, aBis.sizeB71()); + bs = aBis.getB71(); + iterator = bs.iterator(); + Assert.assertEquals(b, iterator.next()); + Assert.assertEquals(b2, iterator.next()); + + // rechange order + + bsBis = Lists.newArrayList(); + bsBis.add(b3); + bsBis.add(b2); + bsBis.add(b); + a.setB71(bsBis); + tx.commitTransaction(); + + aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(3, aBis.sizeB71()); + bs = aBis.getB71(); + iterator = bs.iterator(); + Assert.assertEquals(b, iterator.next()); + Assert.assertEquals(b2, iterator.next()); + Assert.assertEquals(b3, iterator.next()); + } +} \ No newline at end of file Added: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderedTest.java =================================================================== --- trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderedTest.java (rev 0) +++ trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/mapping/test7/SimpleOneToManyOrderedTest.java 2012-05-23 13:17:19 UTC (rev 2504) @@ -0,0 +1,99 @@ +package org.nuiton.topia.tck.mapping.test7; + +import com.google.common.collect.Lists; +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.List; + +/** + * Tests the stereotype {@code orderered} on a {@code OneToMany} relation. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class SimpleOneToManyOrderedTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A7DAO aDAO; + + protected B7DAO bDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A7.class); + bDAO = getDAO(tx, B7.class); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + long nbB = bDAO.count(); + + Assert.assertEquals(0, nbA); + Assert.assertEquals(0, nbB); + + A7 a = aDAO.create(); + B7 b = bDAO.create(); + B7 b2 = bDAO.create(); + B7 b3 = bDAO.create(); + + a.addB7(b); + a.addB7(b2); + + tx.commitTransaction(); + + nbA = aDAO.count(); + nbB = bDAO.count(); + + Assert.assertEquals(1, nbA); + Assert.assertEquals(3, nbB); + + A7 aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(2, aBis.sizeB7()); + List<B7> bs = aBis.getB7(); + Assert.assertEquals(b, bs.get(0)); + Assert.assertEquals(b2, bs.get(1)); + + // change order + List<B7> bsBis; + + bsBis = Lists.newArrayList(); + bsBis.add(b2); + bsBis.add(b); + a.setB7(bsBis); + tx.commitTransaction(); + + aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(2, aBis.sizeB7()); + bs = aBis.getB7(); + Assert.assertEquals(b2, bs.get(0)); + Assert.assertEquals(b, bs.get(1)); + + // rechange order + + bsBis = Lists.newArrayList(); + bsBis.add(b3); + bsBis.add(b2); + bsBis.add(b); + a.setB7(bsBis); + tx.commitTransaction(); + + aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + Assert.assertEquals(3, aBis.sizeB7()); + bs = aBis.getB7(); + Assert.assertEquals(b3, bs.get(0)); + Assert.assertEquals(b2, bs.get(1)); + Assert.assertEquals(b, bs.get(2)); + } +} \ No newline at end of file Modified: trunk/topia-persistence-tck/src/main/xmi/topia-tck-mapping.zargo =================================================================== (Binary files differ)