move MockCdmCacher to TermLoader
[cdmlib.git] / cdmlib-model / src / test / java / eu / etaxonomy / cdm / model / common / IdentifiableEntityTest.java
index 9cd170723645e385feca0fbeadb0d2709b9d2691..93fc9405c60b7a47dd35c36b872867709d239697 100644 (file)
@@ -23,6 +23,9 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.agent.Person;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.reference.Reference;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 \r
 /**\r
  * @author a.babadshanjan\r
@@ -36,14 +39,25 @@ public class IdentifiableEntityTest {
        private NonViralName<?> abiesAlba;\r
        private NonViralName<?> abiesAlbaMichx;\r
        private NonViralName<?> abiesAlbaMill;\r
-\r
+       \r
+       private Taxon abiesTaxon;\r
+       private Taxon abiesMillTaxon;\r
+       \r
+       private NonViralName<?> abiesAutonym;\r
+       private Taxon abiesAutonymTaxon;\r
+       \r
+       private NonViralName<?> abiesBalsamea;\r
+       private Taxon abiesBalsameaTaxon;\r
        /**\r
         * @throws java.lang.Exception\r
         */\r
+       \r
        @BeforeClass\r
-       public static void setUpBeforeClass() throws Exception {\r
+       public static void setUpBeforeClass() {\r
+               DefaultTermInitializer vocabularyStore = new DefaultTermInitializer();\r
+               vocabularyStore.initialize();\r
+               \r
        }\r
-\r
        /**\r
         * @throws java.lang.Exception\r
         */\r
@@ -59,23 +73,44 @@ public class IdentifiableEntityTest {
 \r
                abies = NonViralName.NewInstance(Rank.GENUS(), null);\r
                abies.setNameCache("Abies");\r
-               abies.setTitleCache("Abies");\r
+               abies.setTitleCache("Abies", true);\r
+               Reference sec = ReferenceFactory.newArticle();\r
+               sec.setTitle("Abies alba Ref");\r
+               \r
+               abiesTaxon = Taxon.NewInstance(abies, sec);\r
                \r
                abiesMill = NonViralName.NewInstance(Rank.GENUS(), null);\r
                abiesMill.setNameCache("Abies");\r
-               abiesMill.setTitleCache("Abies Mill.");\r
+               abiesMill.setTitleCache("Abies Mill.", true);\r
+               abiesMillTaxon = Taxon.NewInstance(abiesMill, sec);\r
                \r
                abiesAlba = NonViralName.NewInstance(Rank.SPECIES(), null);\r
                abiesAlba.setNameCache("Abies alba");\r
-               abiesAlba.setTitleCache("Abies alba");\r
+               abiesAlba.setTitleCache("Abies alba", true);\r
                \r
                abiesAlbaMichx = NonViralName.NewInstance(Rank.SPECIES(), null);\r
                abiesAlbaMichx.setNameCache("Abies alba");\r
-               abiesAlbaMichx.setTitleCache("Abies alba Michx.");\r
+               abiesAlbaMichx.setTitleCache("Abies alba Michx.", true);\r
                \r
                abiesAlbaMill = NonViralName.NewInstance(Rank.SPECIES(), null);\r
                abiesAlbaMill.setNameCache("Abies alba");\r
-               abiesAlbaMill.setTitleCache("Abies alba Mill.");\r
+               abiesAlbaMill.setTitleCache("Abies alba Mill.", true);\r
+               \r
+               abiesAutonym  = NonViralName.NewInstance(Rank.SECTION_BOTANY());\r
+               abiesAutonym.setGenusOrUninomial("Abies");\r
+               abiesAutonym.setInfraGenericEpithet("Abies");\r
+               \r
+               abiesAutonym.setTitleCache("Abies Mill. sect. Abies", true);\r
+               abiesAutonym.getNameCache();\r
+               abiesAutonymTaxon = Taxon.NewInstance(abiesAutonym, sec);\r
+               \r
+               abiesBalsamea  = NonViralName.NewInstance(Rank.SECTION_BOTANY());\r
+               abiesBalsamea.setGenusOrUninomial("Abies");\r
+               abiesBalsamea.setInfraGenericEpithet("Balsamea");\r
+               abiesBalsamea.getNameCache();\r
+               abiesBalsamea.setTitleCache("Abies sect. Balsamea L.", true);\r
+               abiesBalsameaTaxon = Taxon.NewInstance(abiesBalsamea, sec);\r
+               \r
        }\r
 \r
        /**\r
@@ -96,6 +131,14 @@ public class IdentifiableEntityTest {
                result = abies.compareTo(abiesMill);\r
                assertTrue(result < 0);\r
                \r
+               abiesTaxon = abies.getTaxa().iterator().next();\r
+               \r
+               assertTrue(abiesTaxon.compareTo(abiesTaxon) == 0);\r
+               \r
+               assertTrue(abiesMillTaxon.compareTo(abiesTaxon) > 0);\r
+               \r
+               assertTrue(abiesTaxon.compareTo(abiesMillTaxon) < 0);\r
+               \r
                // "Abies Mill." > "Abies"\r
                result = abiesMill.compareTo(abies);\r
                assertTrue(result > 0);\r
@@ -115,7 +158,11 @@ public class IdentifiableEntityTest {
                // "Abies alba Michx." > "Abies Mill."\r
                result = abiesAlbaMichx.compareTo(abiesMill);\r
                assertTrue(result > 0);\r
-\r
+               \r
+               //Autonym should sorted without the authorstring\r
+               \r
+               result = abiesAutonym.compareTo(abiesBalsamea);\r
+               assertTrue(result < 0);\r
            // Test consistency of compareTo() with equals(): \r
                // Is consistent if and only if for every e1 and e2 of class C\r
                // e1.compareTo(e2) == 0 has the same boolean value as e1.equals(e2) \r
@@ -179,4 +226,13 @@ public class IdentifiableEntityTest {
                assertNotNull("A list should always be returned",abies.getCredits());\r
                assertTrue("No credits should exist",abies.getCredits().isEmpty());\r
        }\r
+       \r
+       @Test\r
+       public void testClone(){\r
+               IdentifiableEntity clone = (IdentifiableEntity)abies.clone();\r
+               assertNotNull(clone);\r
+               assertEquals(clone.annotations, abies.annotations);\r
+               assertEquals(clone.markers, abies.markers);\r
+               assertFalse(clone.uuid.equals(abies.uuid));\r
+       }\r
 }\r