Test for TaxonNameBase and HomotypicalGroup
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 24 Jun 2009 23:40:00 +0000 (23:40 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 24 Jun 2009 23:40:00 +0000 (23:40 +0000)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/OriginalSource.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/VersionableEntity.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/name/HomotypicalGroupTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/name/TaxonNameBaseTest.java

index c6016f7d8158588cad04273d688cdc7dca7cb245..4fe88966c3e94796a606fccd74f02df9efd49c2e 100644 (file)
@@ -20,7 +20,6 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlIDREF;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlSchemaType;
-import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.log4j.Logger;
@@ -32,7 +31,10 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 
 /**
  * Other names/labels/titles (abreviated or not) for the same object (person,
- * reference, source, etc.)
+ * reference, source, etc.).
+ * It can also be used to store the id, namespace/tablename from an import source into CDM.
+ * E.g. when importing SDD data here you may store the filename and the id used in the SDD file here.
+ * 
  * @author m.doering
  * @version 1.0
  * @created 08-Nov-2007 13:06:22
index 49c3b65c9f985c963e987dcc990d3814397f03e4..eac0d3691c8c3645543d746b9a2777454b16ca60 100644 (file)
@@ -18,7 +18,6 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlIDREF;
 import javax.xml.bind.annotation.XmlSchemaType;
-import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
index 77987fc119c4498a4889541fc6bd71563dab4ac6..03be0a438e3e25e94d851f1b1e10e5d47a1777cd 100644 (file)
@@ -121,5 +121,47 @@ public class HomotypicalGroupTest {
                Assert.assertEquals("Number of unrelatedNames should be 1", 1, unrelatedNames.size());\r
        }\r
        \r
+       @Test\r
+       public void testSetGroupBasionym(){\r
+       \r
+               name1.mergeHomotypicGroups(name2);\r
+               name1.mergeHomotypicGroups(name3);\r
+               name2.mergeHomotypicGroups(name4);\r
+               \r
+               name3.getHomotypicalGroup().setGroupBasionym(name1);\r
+               \r
+               Assert.assertEquals(1, name2.getBasionyms().size());\r
+               Assert.assertEquals(1, name3.getBasionyms().size());\r
+               Assert.assertEquals(1, name4.getBasionyms().size());\r
+               Assert.assertEquals(name1, name4.getBasionym());\r
+       }\r
+\r
+       @Test\r
+       public void testRemoveGroupBasionym(){\r
+               \r
+               name1.mergeHomotypicGroups(name2);\r
+               name1.mergeHomotypicGroups(name3);\r
+               name2.mergeHomotypicGroups(name4);\r
+               \r
+               HomotypicalGroup hg = name3.getHomotypicalGroup();\r
+               hg.setGroupBasionym(name1);\r
+               \r
+               Assert.assertEquals(1, name2.getBasionyms().size());\r
+               Assert.assertEquals(1, name3.getBasionyms().size());\r
+               Assert.assertEquals(1, name4.getBasionyms().size());\r
+               Assert.assertEquals(name1, name4.getBasionym());\r
+               Assert.assertEquals(1, hg.getBasionyms().size());\r
+\r
+               hg.removeGroupBasionym(name1);\r
+               Assert.assertEquals(0, hg.getBasionyms().size());\r
+\r
+               Assert.assertEquals(0, name2.getBasionyms().size());\r
+               Assert.assertEquals(0, name3.getBasionyms().size());\r
+               Assert.assertEquals(0, name4.getBasionyms().size());\r
+               Assert.assertEquals(null, name4.getBasionym());\r
+\r
+       }\r
+       \r
+       \r
        \r
 }\r
index 28a9d1a9138ef0fb3212eb742f6f137981d05587..af9474bdbbd2d1884f7c3d6ffe729341d92c9e26 100644 (file)
@@ -16,6 +16,7 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;\r
 import static org.junit.Assert.assertSame;\r
 import static org.junit.Assert.assertTrue;\r
+import junit.framework.Assert;\r
 \r
 import org.apache.log4j.Logger;\r
 import org.junit.Before;\r
@@ -74,7 +75,6 @@ public class TaxonNameBaseTest {
                public String generateFullTitle(){return null;}\r
                @Override\r
                public String generateTitle() {\r
-                       // TODO Auto-generated method stub\r
                        return null;\r
                };\r
        }\r
@@ -82,17 +82,10 @@ public class TaxonNameBaseTest {
        \r
 /** *************************  TESTS ******************************************************/\r
        \r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#generateTitle()}.\r
-        */\r
-       @Test\r
-       public void testGenerateTitle() {\r
-               logger.warn("not yet implemented");\r
-       }\r
 \r
        @Test\r
        public void testGenerateFullTitle() {\r
-               logger.warn("not yet implemented");\r
+               //abstract\r
        }\r
        \r
        /**\r
@@ -251,16 +244,6 @@ public class TaxonNameBaseTest {
                \r
        }\r
 \r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#setStatus(java.util.Set)}.\r
-        */\r
-       @Test\r
-       public void testSetStatus() {\r
-               //is protected\r
-               logger.warn("not yet implemented");\r
-       }\r
-\r
-\r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#isOriginalCombination()}.\r
         */\r
@@ -274,7 +257,18 @@ public class TaxonNameBaseTest {
         */\r
        @Test\r
        public void testGetBasionym() {\r
-               logger.warn("not yet implemented");\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase basionym1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase basionym2 = BotanicalName.NewInstance(null);\r
+               \r
+               Assert.assertEquals(null, name1.getBasionym()); \r
+               name1.addBasionym(basionym1);\r
+               Assert.assertEquals(basionym1, name1.getBasionym());\r
+               name1.addBasionym(basionym2);\r
+               TaxonNameBase oneOfThebasionyms = name1.getBasionym();\r
+               Assert.assertTrue(oneOfThebasionyms == basionym1 || oneOfThebasionyms == basionym2 );\r
+               name1.removeBasionyms();\r
+               Assert.assertEquals(null, name1.getBasionym()); \r
        }\r
 \r
        /**\r
@@ -298,13 +292,6 @@ public class TaxonNameBaseTest {
                logger.warn("not yet implemented");\r
        }\r
 \r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#removeBasionym()}.\r
-        */\r
-       @Test\r
-       public void testRemoveBasionym() {\r
-               logger.warn("not yet implemented");\r
-       }\r
 \r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#getCacheStrategy()}.\r
@@ -327,22 +314,20 @@ public class TaxonNameBaseTest {
         */\r
        @Test\r
        public void testGetRank() {\r
-               logger.warn("not yet implemented");\r
-       }\r
-\r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#setRank(eu.etaxonomy.cdm.model.name.Rank)}.\r
-        */\r
-       @Test\r
-       public void testSetRank() {\r
-               logger.warn("not yet implemented");\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               assertNull("Rank shall be null", name1.getRank());\r
+               name1.setRank(Rank.SPECIES());\r
+               assertNotNull("Rank shall not be null", name1.getRank());\r
+               name1.setRank(null);\r
+               assertNull("Rank shall be null", name1.getRank());\r
+               \r
        }\r
 \r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#getNomenclaturalReference()}.\r
         */\r
        @Test\r
-       public void testGetNomenclaturalReference() {\r
+       public void testGetSetNomenclaturalReference() {\r
                INomenclaturalReference nr = (INomenclaturalReference) nameBase1.getNomenclaturalReference();\r
                assertNull("Nomenclatural Reference shall be null", nr);\r
                nameBase1.setNomenclaturalReference(Generic.NewInstance());\r
@@ -350,68 +335,46 @@ public class TaxonNameBaseTest {
                assertNotNull("Nomenclatural Reference shall not be null", nr);\r
        }\r
 \r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#setNomenclaturalReference(eu.etaxonomy.cdm.model.reference.INomenclaturalReference)}.\r
-        */\r
-       @Test\r
-       public void testSetNomenclaturalReference() {\r
-               logger.warn("not yet implemented");\r
-       }\r
-\r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#getAppendedPhrase()}.\r
         */\r
        @Test\r
        public void testGetAppendedPhrase() {\r
-               logger.warn("not yet implemented");\r
-       }\r
-\r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#setAppendedPhrase(java.lang.String)}.\r
-        */\r
-       @Test\r
-       public void testSetAppendedPhrase() {\r
-               logger.warn("not yet implemented");\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               String appPhrase = "appPhrase";\r
+               Assert.assertNull(name1.getAppendedPhrase());\r
+               name1.setAppendedPhrase(appPhrase);\r
+               Assert.assertSame(appPhrase, name1.getAppendedPhrase());\r
+               name1.setAppendedPhrase(null);\r
+               Assert.assertNull(name1.getAppendedPhrase());\r
        }\r
 \r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#getNomenclaturalMicroReference()}.\r
         */\r
        @Test\r
-       public void testGetNomenclaturalMicroReference() {\r
-               logger.warn("not yet implemented");\r
-       }\r
-\r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#setNomenclaturalMicroReference(java.lang.String)}.\r
-        */\r
-       @Test\r
-       public void testSetNomenclaturalMicroReference() {\r
-               logger.warn("not yet implemented");\r
+       public void testGetSetNomenclaturalMicroReference() {\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               String microRef = "micro";\r
+               Assert.assertNull(name1.getNomenclaturalMicroReference());\r
+               name1.setNomenclaturalMicroReference(microRef);\r
+               Assert.assertSame(microRef, name1.getNomenclaturalMicroReference());\r
+               name1.setNomenclaturalMicroReference(null);\r
+               Assert.assertNull(name1.getNomenclaturalMicroReference());\r
        }\r
 \r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#getHasProblem()}.\r
         */\r
        @Test\r
-       public void testGetHasProblem() {\r
-               logger.warn("not yet implemented");\r
-       }\r
-\r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#setHasProblem(boolean)}.\r
-        */\r
-       @Test\r
-       public void testSetHasProblem() {\r
-               logger.warn("not yet implemented");\r
-       }\r
-\r
-       /**\r
-        * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#hasProblem()}.\r
-        */\r
-       @Test\r
-       public void testHasProblem() {\r
-               logger.warn("not yet implemented");\r
+       public void testGetSetHasProblem() {\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               name1.setHasProblem(false);\r
+               Assert.assertFalse(name1.hasProblem());\r
+               name1.setHasProblem(true);\r
+               Assert.assertTrue(name1.hasProblem());\r
+               name1.setHasProblem(false);\r
+               Assert.assertFalse(name1.getHasProblem());\r
        }\r
 \r
        /**\r
@@ -591,13 +554,136 @@ public class TaxonNameBaseTest {
        public void testGetSynonyms() {\r
                logger.warn("not yet implemented");\r
        }\r
+       \r
+       @Test\r
+       public void testMergeHomotypicGroups() {\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name2 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name3 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name4 = BotanicalName.NewInstance(null);\r
+               \r
+               Assert.assertFalse(name1.getHomotypicalGroup().equals(name2.getHomotypicalGroup()));\r
+               int numberOfTypifiedNames = name1.getHomotypicalGroup().getTypifiedNames().size();\r
+               Assert.assertEquals(1, numberOfTypifiedNames);\r
+               \r
+               name1.mergeHomotypicGroups(name2);\r
+               Assert.assertEquals(name1.getHomotypicalGroup(), name2.getHomotypicalGroup());\r
+               Assert.assertSame(name1.getHomotypicalGroup(), name2.getHomotypicalGroup());\r
+               numberOfTypifiedNames = name1.getHomotypicalGroup().getTypifiedNames().size();\r
+               Assert.assertEquals(2, numberOfTypifiedNames);\r
+               numberOfTypifiedNames = name2.getHomotypicalGroup().getTypifiedNames().size();\r
+               Assert.assertEquals(2, numberOfTypifiedNames);\r
+               Assert.assertTrue(name1.getHomotypicalGroup().getTypifiedNames().contains(name2));\r
+               Assert.assertTrue(name2.getHomotypicalGroup().getTypifiedNames().contains(name1));\r
+\r
+               name3.mergeHomotypicGroups(name2);\r
+               Assert.assertEquals(name1.getHomotypicalGroup(), name3.getHomotypicalGroup());\r
+               Assert.assertSame(name1.getHomotypicalGroup(), name3.getHomotypicalGroup());\r
+               numberOfTypifiedNames = name1.getHomotypicalGroup().getTypifiedNames().size();\r
+               Assert.assertEquals(3, numberOfTypifiedNames);\r
+               numberOfTypifiedNames = name2.getHomotypicalGroup().getTypifiedNames().size();\r
+               Assert.assertEquals(3, numberOfTypifiedNames);\r
+               numberOfTypifiedNames = name3.getHomotypicalGroup().getTypifiedNames().size();\r
+               Assert.assertEquals(3, numberOfTypifiedNames);\r
+               Assert.assertTrue(name1.getHomotypicalGroup().getTypifiedNames().contains(name2));\r
+               Assert.assertTrue(name2.getHomotypicalGroup().getTypifiedNames().contains(name1));\r
+               Assert.assertTrue(name1.getHomotypicalGroup().getTypifiedNames().contains(name3));\r
+               Assert.assertTrue(name3.getHomotypicalGroup().getTypifiedNames().contains(name1));\r
+               Assert.assertTrue(name2.getHomotypicalGroup().getTypifiedNames().contains(name3));\r
+               Assert.assertTrue(name3.getHomotypicalGroup().getTypifiedNames().contains(name2));\r
+\r
+               \r
+       }\r
+       \r
+       \r
+       @Test\r
+       public void testIsBasionymFor() {\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name2 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name3 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name4 = BotanicalName.NewInstance(null);\r
+               \r
+               Assert.assertFalse(name2.isBasionymFor(name1));\r
+               Assert.assertFalse(name1.isBasionymFor(name2));\r
+               name1.addBasionym(name2);\r
+               Assert.assertTrue(name2.isBasionymFor(name1));\r
+               Assert.assertFalse(name1.isBasionymFor(name2));\r
+       }\r
 \r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.model.name.TaxonNameBase#isHomotypic(eu.etaxonomy.cdm.model.name.TaxonNameBase)}.\r
         */\r
        @Test\r
        public void testIsHomotypic() {\r
-               logger.warn("not yet implemented");\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name2 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name3 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name4 = BotanicalName.NewInstance(null);\r
+               name1.mergeHomotypicGroups(name2);\r
+               name2.mergeHomotypicGroups(name4);\r
+               \r
+               Assert.assertTrue(name1.isHomotypic(name4));\r
+               Assert.assertTrue(name4.isHomotypic(name1));\r
+               Assert.assertFalse(name1.isHomotypic(name3));\r
+               Assert.assertFalse(name3.isHomotypic(name1));\r
+               Assert.assertTrue(name2.isHomotypic(name1));\r
+               \r
+       }\r
+\r
+       @Test\r
+       public void testMakeGroupsBasionym(){\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name2 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name3 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name4 = BotanicalName.NewInstance(null);\r
+               \r
+               name1.mergeHomotypicGroups(name2);\r
+               name1.mergeHomotypicGroups(name3);\r
+               name2.mergeHomotypicGroups(name4);\r
+               \r
+               name1.makeGroupsBasionym();\r
+               \r
+               Assert.assertEquals(1, name2.getBasionyms().size());\r
+               Assert.assertEquals(1, name3.getBasionyms().size());\r
+               Assert.assertEquals(1, name4.getBasionyms().size());\r
+               Assert.assertEquals(name1, name4.getBasionym());\r
+               \r
+       }\r
+       \r
+       @Test\r
+       public void testIsGroupsBasionym(){\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name2 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name3 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name4 = BotanicalName.NewInstance(null);\r
+               \r
+               Assert.assertFalse(name1.isGroupsBasionym());\r
+               \r
+               name1.mergeHomotypicGroups(name2);\r
+               name2.mergeHomotypicGroups(name4);\r
+               \r
+               name1.makeGroupsBasionym();\r
+               \r
+               Assert.assertTrue(name1.isGroupsBasionym());\r
+               Assert.assertFalse(name2.isGroupsBasionym());\r
+               name1.mergeHomotypicGroups(name3);\r
+               Assert.assertFalse(name1.isGroupsBasionym());   \r
+       }\r
+       \r
+       \r
+       \r
+       @Test\r
+       public void testRemoveBasionyms(){\r
+               TaxonNameBase name1 = BotanicalName.NewInstance(null);\r
+               TaxonNameBase basionym = BotanicalName.NewInstance(null);\r
+               TaxonNameBase name3 = BotanicalName.NewInstance(null);\r
+               \r
+               name1.addBasionym(basionym);\r
+               Assert.assertEquals(1, name1.getBasionyms().size());\r
+               name1.addBasionym(name3);\r
+               Assert.assertEquals(2, name1.getBasionyms().size());\r
+               name1.removeBasionyms();\r
+               Assert.assertEquals(0, name1.getBasionyms().size());    \r
        }\r
 \r
        /**\r