minor
[cdmlib.git] / cdmlib-model / src / test / java / eu / etaxonomy / cdm / strategy / cache / name / BotanicNameCacheStrategyTest.java
index f5f96eb55ddef28b529d0bd33b65150a4637d4b1..3fa367680c0a1a7fb7dbd691eb693653c7c642d3 100644 (file)
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;\r
 import static org.junit.Assert.assertNull;\r
 \r
-import java.lang.reflect.InvocationTargetException;\r
 import java.lang.reflect.Method;\r
 import java.util.GregorianCalendar;\r
 \r
@@ -31,13 +30,14 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.reference.Book;\r
+import eu.etaxonomy.cdm.model.reference.Reference;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
 \r
 /**\r
  * @author a.mueller\r
  *\r
  */\r
-public class BotanicNameCacheStrategyTest {\r
+public class BotanicNameCacheStrategyTest extends NameCacheStrategyTestBase{\r
        private static final Logger logger = Logger.getLogger(BotanicNameCacheStrategyTest.class);\r
        \r
        private static final String familyNameString = "Familia";\r
@@ -61,7 +61,8 @@ public class BotanicNameCacheStrategyTest {
        private INomenclaturalAuthor exAuthor;\r
        private INomenclaturalAuthor basAuthor;\r
        private INomenclaturalAuthor exBasAuthor;\r
-       private Book citationRef;\r
+       private Reference<?> citationRef;\r
+       ReferenceFactory refFactory;\r
        \r
        /**\r
         * @throws java.lang.Exception\r
@@ -97,14 +98,14 @@ public class BotanicNameCacheStrategyTest {
                exBasAuthor = Person.NewInstance();\r
                exBasAuthor.setNomenclaturalTitle(exBasAuthorString);\r
                \r
-               citationRef = Book.NewInstance();\r
+               citationRef = refFactory.newBook();\r
                // Gard. Dict. ed. 8, no. 1. 1768.\r
                citationRef.setTitle("Gard. Dict.");\r
                //citationRef.setPlacePublished("");\r
                citationRef.setVolume("1");\r
                citationRef.setEdition("ed. 8");\r
                GregorianCalendar testDate = new GregorianCalendar();\r
-               testDate.set(1768, 1, 1);\r
+               testDate.set(1968, 3, 2);\r
                \r
                TimePeriod period = TimePeriod.NewInstance(testDate);\r
                \r
@@ -130,7 +131,7 @@ public class BotanicNameCacheStrategyTest {
         */\r
        @Test\r
        public final void testNewInstance() {\r
-               BotanicNameDefaultCacheStrategy cacheStrategy = BotanicNameDefaultCacheStrategy.NewInstance();\r
+               BotanicNameDefaultCacheStrategy<?> cacheStrategy = BotanicNameDefaultCacheStrategy.NewInstance();\r
                assertNotNull(cacheStrategy);\r
        }\r
 \r
@@ -156,23 +157,35 @@ public class BotanicNameCacheStrategyTest {
                assertEquals(subSpeciesNameString, strategy.getNameCache(subSpeciesName));\r
                assertEquals(subSpeciesNameString + " (" + exBasAuthorString + " ex " + basAuthorString + ")" +  " " + exAuthorString + " ex " + authorString  , strategy.getTitleCache(subSpeciesName));\r
                \r
+               subSpeciesName.setExCombinationAuthorTeam(null);\r
+               assertEquals(subSpeciesNameString + " (" + exBasAuthorString + " ex " + basAuthorString + ")" +  " " + authorString , strategy.getTitleCache(subSpeciesName));\r
+                               \r
+               subSpeciesName.setExBasionymAuthorTeam(null);\r
+               assertEquals(subSpeciesNameString + " (" + basAuthorString + ")" +  " " + authorString , strategy.getTitleCache(subSpeciesName));\r
+                       \r
+               \r
                //Autonym\r
                subSpeciesName.setInfraSpecificEpithet("alba");\r
                subSpeciesName.setCombinationAuthorTeam(author);\r
                subSpeciesName.setBasionymAuthorTeam(null);\r
                subSpeciesName.setExCombinationAuthorTeam(null);\r
                subSpeciesName.setExBasionymAuthorTeam(null);\r
-               assertEquals("Abies alba alba", strategy.getNameCache(subSpeciesName));\r
+               //changed 2009-09-04\r
+               assertEquals("Abies alba subsp. alba", strategy.getNameCache(subSpeciesName));\r
                assertEquals("Abies alba L. subsp. alba", strategy.getTitleCache(subSpeciesName));\r
-       }\r
+               \r
+               \r
+               \r
+               }\r
 \r
        /**\r
         * Test method for {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy#getFullTitleCache(eu.etaxonomy.cdm.model.common.CdmBase)}.\r
         */\r
        @Test\r
        public final void testGetFullTitleCache() {\r
-               assertNull(speciesNameString, strategy.getFullTitleCache(null));\r
-               assertEquals("Abies alba app phrase, Gard. Dict. ed. 8, 1. 1768, nom. illeg.", strategy.getFullTitleCache(speciesName));\r
+               assertNull("Full title cache of null object should return null", strategy.getFullTitleCache(null));\r
+               //NOTE: Unclear if the date part should contain the full date or only the year. Undefined Behaviour.\r
+               assertEquals("Abies alba app phrase, Gard. Dict., ed. 8, 1. 2.4.1968, nom. illeg.", strategy.getFullTitleCache(speciesName));\r
                \r
 //             assertNull(subSpeciesNameString, strategy.getFullTitleCache(null));\r
 //             assertEquals("Abies alba app phrase L. Gard. Dict. ed. 8, 1. 1768, nom. illeg.", strategy.getFullTitleCache(speciesName));\r
@@ -210,10 +223,10 @@ public class BotanicNameCacheStrategyTest {
         * Test method for {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy#getInfraGenusNameCache(eu.etaxonomy.cdm.model.name.BotanicalName)}.\r
         */\r
        @Test\r
-       public final void testGetInfraGenusNameCache() {\r
-               String methodName = "getInfraGenusNameCache";\r
+       public final void testGetInfraGenusTaggedNameCache() {\r
+               String methodName = "getInfraGenusTaggedNameCache";\r
                Method method = getMethod(NonViralNameDefaultCacheStrategy.class, methodName, NonViralName.class);\r
-               this.getValue(method, strategy, subGenusName);\r
+               this.getStringValue(method, strategy, subGenusName);\r
                assertEquals("Genus subg. InfraGenericPart", strategy.getNameCache(subGenusName));\r
        }\r
 \r
@@ -242,14 +255,15 @@ public class BotanicNameCacheStrategyTest {
        public final void testAutonyms() {\r
                subSpeciesName.setInfraSpecificEpithet("alba");\r
                subSpeciesName.setCombinationAuthorTeam(author);\r
-               assertEquals("Abies alba alba", strategy.getNameCache(subSpeciesName));\r
+               //changed 2009-09-04\r
+               assertEquals("Abies alba subsp. alba", strategy.getNameCache(subSpeciesName));\r
                assertEquals("Abies alba L. subsp. alba", strategy.getTitleCache(subSpeciesName));\r
        }\r
        \r
        protected Method getMethod(Class clazz, String methodName, Class paramClazzes){\r
                Method method;\r
                try {\r
-                       method = clazz.getDeclaredMethod("getInfraGenusNameCache", paramClazzes);\r
+                       method = clazz.getDeclaredMethod(methodName, paramClazzes);\r
                } catch (SecurityException e) {\r
                        logger.error("SecurityException " + e.getMessage());\r
                        return null;\r
@@ -259,21 +273,7 @@ public class BotanicNameCacheStrategyTest {
                }\r
                return method;\r
        }\r
-       \r
-       protected String getValue(Method method, Object object,Object parameter){\r
-               try {\r
-                       return (String)method.invoke(object, parameter);\r
-               } catch (IllegalArgumentException e) {\r
-                       logger.error("IllegalArgumentException " + e.getMessage());\r
-                       return null;\r
-               } catch (IllegalAccessException e) {\r
-                       logger.error("IllegalAccessException " + e.getMessage());\r
-                       return null;\r
-               } catch (InvocationTargetException e) {\r
-                       logger.error("InvocationTargetException " + e.getMessage());\r
-                       return null;\r
-               }\r
-       }\r
+\r
 \r
 \r
 }\r