Author: sbavencoff Date: 2014-01-15 12:18:01 +0100 (Wed, 15 Jan 2014) New Revision: 2977 Url: http://nuiton.org/projects/topia/repository/revisions/2977 Log: fix bug getRandomPart and create test for this class Added: trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/DefaultTopiaIdFactoryTest.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/DefaultTopiaIdFactory.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/DefaultTopiaIdFactory.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/DefaultTopiaIdFactory.java 2014-01-13 18:36:11 UTC (rev 2976) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/DefaultTopiaIdFactory.java 2014-01-15 11:18:01 UTC (rev 2977) @@ -69,7 +69,7 @@ @Override public String getRandomPart(String topiaId) { - return StringUtils.substringBefore(topiaId, getSeparator()); + return StringUtils.substringAfter(topiaId, getSeparator()); } } Added: trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/DefaultTopiaIdFactoryTest.java =================================================================== --- trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/DefaultTopiaIdFactoryTest.java (rev 0) +++ trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/DefaultTopiaIdFactoryTest.java 2014-01-15 11:18:01 UTC (rev 2977) @@ -0,0 +1,112 @@ +package org.nuiton.topia.persistence; + +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.topia.persistence.internal.DefaultTopiaIdFactory; + +/** + * @author Sylvain Bavencoff <bavencoff@codelutin.com> + */ +public class DefaultTopiaIdFactoryTest { + + interface EntityA extends TopiaEntity {} + + class EntityAImpl extends TopiaEntityAbstract implements EntityA { + + @Override + public void accept(EntityVisitor visitor) throws TopiaException { + + } + } + + interface EntityB extends TopiaEntity {} + + class EntityBImpl extends TopiaEntityAbstract implements EntityB { + + @Override + public void accept(EntityVisitor visitor) throws TopiaException { + + } + } + + protected DefaultTopiaIdFactory topiaFactory; + + public DefaultTopiaIdFactoryTest() { + topiaFactory = new DefaultTopiaIdFactory(); + } + + @Test + public void testNewTopiaId() { + + EntityA entityA1 = new EntityAImpl(); + + EntityA entityA2 = new EntityAImpl(); + + String topiaId1 = topiaFactory.newTopiaId(EntityA.class, entityA1); + + String topiaId2 = topiaFactory.newTopiaId(EntityA.class, entityA2); + + Assert.assertNotNull(topiaId1); + + Assert.assertTrue(topiaId1.startsWith(EntityA.class.getName() + topiaFactory.getSeparator())); + + Assert.assertNotEquals(topiaId1, topiaId2); + + } + + @Test + public void TestGetClassName() { + + EntityA entityA = new EntityAImpl(); + + EntityB entityB = new EntityBImpl(); + + String topiaIdA = topiaFactory.newTopiaId(EntityA.class, entityA); + + String topiaIdB = topiaFactory.newTopiaId(EntityB.class, entityB); + + Assert.assertEquals(EntityA.class, topiaFactory.getClassName(topiaIdA)); + + Assert.assertEquals(EntityB.class, topiaFactory.getClassName(topiaIdB)); + + } + + @Test + public void TestGetRandomPart() { + + EntityA entityA1 = new EntityAImpl(); + + EntityA entityA2 = new EntityAImpl(); + + String topiaId1 = topiaFactory.newTopiaId(EntityA.class, entityA1); + + String topiaId2 = topiaFactory.newTopiaId(EntityA.class, entityA2); + + String randomPart1 = topiaFactory.getRandomPart(topiaId1); + + String randomPart2 = topiaFactory.getRandomPart(topiaId2); + + Assert.assertNotNull(randomPart1); + + Assert.assertFalse(randomPart1.isEmpty()); + + Assert.assertFalse(randomPart1.startsWith(EntityA.class.getName())); + + Assert.assertFalse(randomPart1.startsWith(topiaFactory.getSeparator())); + + Assert.assertNotEquals(randomPart1, randomPart2); + + } + + @Test + public void testGetSeparator() { + + String separator = topiaFactory.getSeparator(); + + Assert.assertNotNull(separator); + + Assert.assertFalse(separator.isEmpty()); + + } + +}