r2541 - in trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck: it/persistence mapping mapping/test12 mapping/test13
Author: tchemit Date: 2012-05-27 11:39:01 +0200 (Sun, 27 May 2012) New Revision: 2541 Url: http://nuiton.org/repositories/revision/topia/2541 Log: refs #2089: Use JPA (orm) mappings (deal with natural Id) (add tests) Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test13/ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test13/EntityWithNaturalIdTest.java Modified: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/it/persistence/NaturalIdTest.java trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test12/EntityWithBasicNotNullFieldsTest.java Modified: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/it/persistence/NaturalIdTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/it/persistence/NaturalIdTest.java 2012-05-27 09:38:28 UTC (rev 2540) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/it/persistence/NaturalIdTest.java 2012-05-27 09:39:01 UTC (rev 2541) @@ -31,12 +31,12 @@ import org.junit.Rule; import org.junit.Test; import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.tck.TopiaDatabase; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.tck.it.TopiaDatabaseIt; -import org.nuiton.topia.tck.it.TopiaTckItDAOHelper; +import org.nuiton.topia.tck.TopiaDatabase; import org.nuiton.topia.tck.it.NaturalizedEntity; import org.nuiton.topia.tck.it.NaturalizedEntityDAO; +import org.nuiton.topia.tck.it.TopiaDatabaseIt; +import org.nuiton.topia.tck.it.TopiaTckItDAOHelper; import javax.persistence.PersistenceException; @@ -79,7 +79,7 @@ transaction.commitTransaction(); } - @Test + @Test(expected = TopiaException.class) public void testCreateFailed() throws Exception { log.debug("Test naturalId : create failed"); TopiaContext transaction = db.beginTransaction(); @@ -87,16 +87,9 @@ NaturalizedEntityDAO dao = TopiaTckItDAOHelper.getNaturalizedEntityDAO(transaction); - // Exception will be throw -// try { - dao.create(); - transaction.commitTransaction(); - - // Note : this is possible to create an empty entity if the type - // is primitive like 'int' which have a default value of '0' -// } catch (PropertyValueException eee) { -// Assert.assertEquals("naturalIdNotNull", eee.getPropertyName()); -// } + // Exception will be throw (not null not respected) + dao.create(); + transaction.commitTransaction(); } @Test Modified: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test12/EntityWithBasicNotNullFieldsTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test12/EntityWithBasicNotNullFieldsTest.java 2012-05-27 09:38:28 UTC (rev 2540) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test12/EntityWithBasicNotNullFieldsTest.java 2012-05-27 09:39:01 UTC (rev 2541) @@ -35,7 +35,7 @@ Assert.assertEquals(0, nbA); // a with all fields to null - A12A a = aDAO.create(); + aDAO.create(); tx.commitTransaction(); } Added: trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test13/EntityWithNaturalIdTest.java =================================================================== --- trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test13/EntityWithNaturalIdTest.java (rev 0) +++ trunk/topia-persistence-tck/src/test/java/org/nuiton/topia/tck/mapping/test13/EntityWithNaturalIdTest.java 2012-05-27 09:39:01 UTC (rev 2541) @@ -0,0 +1,84 @@ +package org.nuiton.topia.tck.mapping.test13; + +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.Date; + +/** + * Tests a entity with a {@code natural id}. + * + * @author tchemit <chemit@codelutin.com> + * @since 3.0 + */ +public class EntityWithNaturalIdTest extends AbstractMappingTest { + + protected TopiaContext tx; + + protected A13ADAO aDAO; + + @Before + public void before() throws TopiaException { + tx = db.beginTransaction(); + aDAO = getDAO(tx, A13A.class); + } + + @Test(expected = TopiaException.class) + public void createwithNull() throws TopiaException { + + long nbA = aDAO.count(); + + Assert.assertEquals(0, nbA); + + // a with all fields to null + aDAO.create(); + tx.commitTransaction(); + } + + @Test + public void create() throws TopiaException { + + long nbA = aDAO.count(); + + Assert.assertEquals(0, nbA); + + // a with all fields to null + Date date = new Date(); + A13A a = aDAO.create( + A13A.PROPERTY_NATURAL_ID_STRING, "string", + A13A.PROPERTY_NATURAL_ID_INTEGER, 1, + A13A.PROPERTY_NATURAL_ID_DATE, date + ); + a.setIntegerField(10); + + tx.commitTransaction(); + + nbA = aDAO.count(); + Assert.assertEquals(1, nbA); + + A13A aBis = aDAO.findByTopiaId(a.getTopiaId()); + Assert.assertEquals(a, aBis); + + aBis = aDAO.findByNaturalId(1, "string", date); + Assert.assertEquals(a, aBis); + + aDAO.create( + A13A.PROPERTY_NATURAL_ID_STRING, "string", + A13A.PROPERTY_NATURAL_ID_INTEGER, 1, + A13A.PROPERTY_NATURAL_ID_DATE, date + ); + + try { + tx.commitTransaction(); + // duplicated natural id + Assert.fail(); + } catch (TopiaException e) { + Assert.assertTrue(true); + } + + } +} \ No newline at end of file
participants (1)
-
tchemit@users.nuiton.org