minor
[cdmlib.git] / cdmlib-persistence / src / test / java / eu / etaxonomy / cdm / persistence / dao / hibernate / common / CdmGenericDaoImplTest.java
index acb374ffea0b1789f9dbb30f5afd25a4fcc2d623..3085af8727b854972d7140121a060390e7482117 100644 (file)
@@ -147,25 +147,10 @@ import eu.etaxonomy.cdm.model.occurrence.Observation;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;\r
 import eu.etaxonomy.cdm.model.occurrence.Specimen;\r
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;\r
 import eu.etaxonomy.cdm.model.occurrence.Specimen;\r
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
-import eu.etaxonomy.cdm.model.reference.Article;\r
-import eu.etaxonomy.cdm.model.reference.Book;\r
-import eu.etaxonomy.cdm.model.reference.BookSection;\r
-import eu.etaxonomy.cdm.model.reference.CdDvd;\r
-import eu.etaxonomy.cdm.model.reference.Database;\r
-import eu.etaxonomy.cdm.model.reference.Generic;\r
-import eu.etaxonomy.cdm.model.reference.InProceedings;\r
-import eu.etaxonomy.cdm.model.reference.Journal;\r
-import eu.etaxonomy.cdm.model.reference.Map;\r
-import eu.etaxonomy.cdm.model.reference.Patent;\r
-import eu.etaxonomy.cdm.model.reference.PersonalCommunication;\r
-import eu.etaxonomy.cdm.model.reference.PrintSeries;\r
-import eu.etaxonomy.cdm.model.reference.PrintedUnitBase;\r
-import eu.etaxonomy.cdm.model.reference.Proceedings;\r
+import eu.etaxonomy.cdm.model.reference.IBook;\r
+import eu.etaxonomy.cdm.model.reference.IBookSection;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
-import eu.etaxonomy.cdm.model.reference.Report;\r
-import eu.etaxonomy.cdm.model.reference.SectionBase;\r
-import eu.etaxonomy.cdm.model.reference.Thesis;\r
-import eu.etaxonomy.cdm.model.reference.WebPage;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
@@ -213,7 +198,7 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
        @SpringBeanByType\r
        private IAgentDao agentDao;\r
        \r
        @SpringBeanByType\r
        private IAgentDao agentDao;\r
        \r
-       \r
+       ReferenceFactory refFactory = ReferenceFactory.newInstance();\r
        /**\r
         * @throws java.lang.Exception\r
         */\r
        /**\r
         * @throws java.lang.Exception\r
         */\r
@@ -247,8 +232,8 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
        @Test\r
        @Ignore\r
        public void testDelete(){\r
        @Test\r
        @Ignore\r
        public void testDelete(){\r
-               ReferenceBase ref1 = Book.NewInstance();\r
-               ReferenceBase ref2 = Book.NewInstance();\r
+               ReferenceBase ref1 = refFactory.newBook();\r
+               ReferenceBase ref2 = refFactory.newBook();\r
                Annotation annotation = Annotation.NewInstance("Anno1", null);\r
                ref1.addAnnotation(annotation);\r
                cdmGenericDao.saveOrUpdate(ref1);\r
                Annotation annotation = Annotation.NewInstance("Anno1", null);\r
                ref1.addAnnotation(annotation);\r
                cdmGenericDao.saveOrUpdate(ref1);\r
@@ -280,8 +265,8 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                BotanicalName name2 = BotanicalName.NewInstance(Rank.SPECIES());\r
                name2.setTitleCache("BotanicalName2");\r
                \r
                BotanicalName name2 = BotanicalName.NewInstance(Rank.SPECIES());\r
                name2.setTitleCache("BotanicalName2");\r
                \r
-               ReferenceBase article1 = Article.NewInstance();\r
-               ReferenceBase article2 = Article.NewInstance();\r
+               ReferenceBase article1 = refFactory.newArticle();\r
+               ReferenceBase article2 = refFactory.newArticle();\r
                \r
                \r
                name1.setNomenclaturalReference(article1);\r
                \r
                \r
                name1.setNomenclaturalReference(article1);\r
@@ -461,25 +446,7 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                                PreservationMethod.class, \r
                                Specimen.class, \r
                                SpecimenOrObservationBase.class, \r
                                PreservationMethod.class, \r
                                Specimen.class, \r
                                SpecimenOrObservationBase.class, \r
-                               Article.class, \r
-                               Book.class, \r
-                               BookSection.class, \r
-                               CdDvd.class, \r
-                               Database.class, \r
-                               Generic.class, \r
-                               InProceedings.class, \r
-                               Journal.class, \r
-                               Map.class, \r
-                               Patent.class, \r
-                               PersonalCommunication.class, \r
-                               PrintedUnitBase.class, \r
-                               PrintSeries.class, \r
-                               Proceedings.class, \r
                                ReferenceBase.class, \r
                                ReferenceBase.class, \r
-                               Report.class, \r
-                               SectionBase.class, \r
-                               Thesis.class, \r
-                               WebPage.class, \r
                                Synonym.class, \r
                                SynonymRelationship.class, \r
                                SynonymRelationshipType.class, \r
                                Synonym.class, \r
                                SynonymRelationship.class, \r
                                SynonymRelationshipType.class, \r
@@ -531,7 +498,7 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
        public void testGetReferencingObjectsCdmBase() {\r
                BotanicalName name = BotanicalName.NewInstance(Rank.SPECIES());\r
                name.setTitleCache("A name");\r
        public void testGetReferencingObjectsCdmBase() {\r
                BotanicalName name = BotanicalName.NewInstance(Rank.SPECIES());\r
                name.setTitleCache("A name");\r
-               ReferenceBase ref1 = Article.NewInstance();\r
+               ReferenceBase ref1 = refFactory.newArticle();\r
                Taxon taxon = Taxon.NewInstance(name, ref1);\r
                Person author = Person.NewInstance();\r
                author.setTitleCache("Author");\r
                Taxon taxon = Taxon.NewInstance(name, ref1);\r
                Person author = Person.NewInstance();\r
                author.setTitleCache("Author");\r
@@ -551,7 +518,7 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                for (CdmBase obj: referencedObjects){\r
                        System.out.println("Object1: " + obj.getClass().getSimpleName() + " - " + obj);\r
                }\r
                for (CdmBase obj: referencedObjects){\r
                        System.out.println("Object1: " + obj.getClass().getSimpleName() + " - " + obj);\r
                }\r
-               assertEquals(2, referencedObjects.size());\r
+               assertEquals(3, referencedObjects.size());\r
                System.out.println("############## ENDE ###################");\r
                \r
 //             UUID uuidAuthor = UUID.fromString("4ce66544-a5a3-4601-ab0b-1f0a1338327b");\r
                System.out.println("############## ENDE ###################");\r
                \r
 //             UUID uuidAuthor = UUID.fromString("4ce66544-a5a3-4601-ab0b-1f0a1338327b");\r
@@ -619,8 +586,8 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                ZoologicalName zooName1 = ZoologicalName.NewInstance(Rank.SPECIES());\r
                name1.setTitleCache("ZoologicalName1");\r
 \r
                ZoologicalName zooName1 = ZoologicalName.NewInstance(Rank.SPECIES());\r
                name1.setTitleCache("ZoologicalName1");\r
 \r
-               ReferenceBase article1 = Article.NewInstance();\r
-               ReferenceBase article2 = Article.NewInstance();\r
+               ReferenceBase article1 = refFactory.newArticle();\r
+               ReferenceBase article2 = refFactory.newArticle();\r
                \r
                \r
                name1.setNomenclaturalReference(article1);\r
                \r
                \r
                name1.setNomenclaturalReference(article1);\r
@@ -748,7 +715,7 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                BotanicalName name3 = BotanicalName.NewInstance(Rank.SPECIES());\r
                name3.setTitleCache("BotanicalName3");\r
                \r
                BotanicalName name3 = BotanicalName.NewInstance(Rank.SPECIES());\r
                name3.setTitleCache("BotanicalName3");\r
                \r
-               ReferenceBase database = Database.NewInstance();\r
+               ReferenceBase database = refFactory.newDatabase();\r
                \r
                Taxon taxon1 = Taxon.NewInstance(name1, database);\r
                Taxon taxon2 = Taxon.NewInstance(name2, database);\r
                \r
                Taxon taxon1 = Taxon.NewInstance(name1, database);\r
                Taxon taxon2 = Taxon.NewInstance(name2, database);\r
@@ -782,8 +749,8 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                BotanicalName name2 = BotanicalName.NewInstance(Rank.SPECIES());\r
                name2.setTitleCache("BotanicalName2");\r
 \r
                BotanicalName name2 = BotanicalName.NewInstance(Rank.SPECIES());\r
                name2.setTitleCache("BotanicalName2");\r
 \r
-               Book book1 = Book.NewInstance();\r
-               Book book2 = Book.NewInstance();\r
+               IBook book1 = refFactory.newBook();\r
+               IBook book2 = refFactory.newBook();\r
                \r
                Team team1 = Team.NewInstance();\r
                Team team2 = Team.NewInstance();\r
                \r
                Team team1 = Team.NewInstance();\r
                Team team2 = Team.NewInstance();\r
@@ -822,8 +789,8 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                agentDao.save(team1);\r
                agentDao.save(team2);\r
                agentDao.save(team3);\r
                agentDao.save(team1);\r
                agentDao.save(team2);\r
                agentDao.save(team3);\r
-               cdmGenericDao.save(book1);\r
-               cdmGenericDao.save(book2);\r
+               cdmGenericDao.save((ReferenceBase)book1);\r
+               cdmGenericDao.save((ReferenceBase)book2);\r
                                \r
                cdmGenericDao.merge(team2, team3, null);\r
                \r
                                \r
                cdmGenericDao.merge(team2, team3, null);\r
                \r
@@ -917,10 +884,10 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
        \r
        @Test\r
        public void findMatching(){\r
        \r
        @Test\r
        public void findMatching(){\r
-               Book book1 = Book.NewInstance();\r
-               Book book2 = Book.NewInstance();\r
-               Book book3 = Book.NewInstance();\r
-               Book book4 = Book.NewInstance();\r
+               IBook book1 = refFactory.newBook();\r
+               IBook book2 = refFactory.newBook();\r
+               IBook book3 = refFactory.newBook();\r
+               IBook book4 = refFactory.newBook();\r
                \r
                String title1 = "title1";\r
                String title2 = "title2";\r
                \r
                String title1 = "title1";\r
                String title2 = "title2";\r
@@ -928,14 +895,14 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                book2.setTitle(title2);\r
                book3.setTitle(title1);\r
                \r
                book2.setTitle(title2);\r
                book3.setTitle(title1);\r
                \r
-               cdmGenericDao.saveOrUpdate(book1);\r
-               cdmGenericDao.saveOrUpdate(book2);\r
-               cdmGenericDao.saveOrUpdate(book3);\r
+               cdmGenericDao.saveOrUpdate((ReferenceBase)book1);\r
+               cdmGenericDao.saveOrUpdate((ReferenceBase)book2);\r
+               cdmGenericDao.saveOrUpdate((ReferenceBase)book3);\r
                \r
                \r
-               IMatchStrategy matchStrategy = DefaultMatchStrategy.NewInstance(Book.class);\r
+               IMatchStrategy matchStrategy = DefaultMatchStrategy.NewInstance(ReferenceBase.class);\r
                \r
                try {\r
                \r
                try {\r
-                       List<Book> matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
+                       List<IBook> matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
                        Assert.assertNotNull("Resultlist must not be null", matchResult);\r
                        Assert.assertEquals("Resultlist must have 1 entries", 1, matchResult.size());\r
                        Assert.assertSame("Resultlist entry must be book 1", book1, matchResult.get(0));\r
                        Assert.assertNotNull("Resultlist must not be null", matchResult);\r
                        Assert.assertEquals("Resultlist must have 1 entries", 1, matchResult.size());\r
                        Assert.assertSame("Resultlist entry must be book 1", book1, matchResult.get(0));\r
@@ -954,19 +921,28 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                        Assert.assertSame("Resultlist entry must be book 1", book1, matchResult.get(0));\r
                        \r
                        //BookSection\r
                        Assert.assertSame("Resultlist entry must be book 1", book1, matchResult.get(0));\r
                        \r
                        //BookSection\r
-                       BookSection section1 = BookSection.NewInstance(book1, null, "SecTitle", "22-33");\r
-                       BookSection section2 = BookSection.NewInstance(book2, null, "SecTitle", "22-33");\r
-                       BookSection section3 = BookSection.NewInstance(book1, null, "SecTitle", "22-33");\r
-                       cdmGenericDao.saveOrUpdate(section1);\r
-                       cdmGenericDao.saveOrUpdate(section2);\r
-                       cdmGenericDao.saveOrUpdate(section3);\r
+                       IBookSection section1 = refFactory.newBookSection();\r
+                       section1.setInBook(book1);\r
+                       section1.setTitle("SecTitle");\r
+                       section1.setPages("22-33");\r
+                       IBookSection section2 = refFactory.newBookSection();\r
+                       section2.setInBook(book2);\r
+                       section2.setTitle("SecTitle");\r
+                       section2.setPages("22-33");\r
+                       IBookSection section3 = refFactory.newBookSection();\r
+                       section3.setInBook(book1);\r
+                       section3.setTitle("SecTitle");\r
+                       section3.setPages("22-33");\r
+                       cdmGenericDao.saveOrUpdate((ReferenceBase)section1);\r
+                       cdmGenericDao.saveOrUpdate((ReferenceBase)section2);\r
+                       cdmGenericDao.saveOrUpdate((ReferenceBase)section3);\r
                        \r
                        \r
-                       List<BookSection> sectionResult = cdmGenericDao.findMatching(section3, null);\r
+                       List<IBookSection> sectionResult = cdmGenericDao.findMatching(section3, null);\r
                        Assert.assertEquals("Resultlist must have 1 entries", 1, sectionResult.size());\r
                        Assert.assertSame("Resultlist entry must be section1", section1, sectionResult.get(0));\r
                        Assert.assertEquals("Resultlist must have 1 entries", 1, sectionResult.size());\r
                        Assert.assertSame("Resultlist entry must be section1", section1, sectionResult.get(0));\r
-                       section2.setInBook(book2 = (Book)book1.clone());\r
-                       cdmGenericDao.saveOrUpdate(book2);\r
-                       cdmGenericDao.saveOrUpdate(book1);\r
+                       section2.setInBook(book2 = (IBook)((ReferenceBase) book1).clone());\r
+                       cdmGenericDao.saveOrUpdate((ReferenceBase)book2);\r
+                       cdmGenericDao.saveOrUpdate((ReferenceBase)book1);\r
                        \r
                        matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
                        Assert.assertEquals("Resultlist must have 2 entries", 2, matchResult.size());\r
                        \r
                        matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
                        Assert.assertEquals("Resultlist must have 2 entries", 2, matchResult.size());\r
@@ -1008,7 +984,7 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
        \r
        @Test\r
        public void findMatchingCache(){\r
        \r
        @Test\r
        public void findMatchingCache(){\r
-               Book book1 = Book.NewInstance();\r
+               IBook book1 = refFactory.newBook();\r
                Team team1 = Team.NewInstance();\r
                Team team2 = Team.NewInstance();\r
                team1.setTitleCache("Team1");\r
                Team team1 = Team.NewInstance();\r
                Team team2 = Team.NewInstance();\r
                team1.setTitleCache("Team1");\r
@@ -1019,8 +995,8 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
                book1.setAuthorTeam(team1);\r
                \r
                \r
                book1.setAuthorTeam(team1);\r
                \r
                \r
-               Book book2 = (Book)book1.clone();\r
-               Book book3 = (Book)book1.clone();\r
+               IBook book2 = (IBook) ((ReferenceBase)book1).clone();\r
+               IBook book3 = (IBook) ((ReferenceBase)book1).clone();\r
                \r
 //             Assert.assertTrue("Cloned book should match", matchStrategy.invoke(book1, bookClone));\r
 //             book1.setTitleCache("cache1");\r
                \r
 //             Assert.assertTrue("Cloned book should match", matchStrategy.invoke(book1, bookClone));\r
 //             book1.setTitleCache("cache1");\r
@@ -1036,17 +1012,17 @@ public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{
 //             bookClone.setEdition(null);\r
 //             Assert.assertTrue("Cached book with a defined and a null edition should match", matchStrategy.invoke(book1, bookClone));\r
 \r
 //             bookClone.setEdition(null);\r
 //             Assert.assertTrue("Cached book with a defined and a null edition should match", matchStrategy.invoke(book1, bookClone));\r
 \r
-               cdmGenericDao.saveOrUpdate(book1);\r
-               cdmGenericDao.saveOrUpdate(book2);\r
-               cdmGenericDao.saveOrUpdate(book3);\r
+               cdmGenericDao.saveOrUpdate((ReferenceBase)book1);\r
+               cdmGenericDao.saveOrUpdate((ReferenceBase)book2);\r
+               cdmGenericDao.saveOrUpdate((ReferenceBase)book3);\r
                cdmGenericDao.saveOrUpdate(team1);\r
                cdmGenericDao.saveOrUpdate(team2);\r
                \r
                \r
                cdmGenericDao.saveOrUpdate(team1);\r
                cdmGenericDao.saveOrUpdate(team2);\r
                \r
                \r
-               IMatchStrategy matchStrategy = DefaultMatchStrategy.NewInstance(Book.class);\r
+               IMatchStrategy matchStrategy = DefaultMatchStrategy.NewInstance(ReferenceBase.class);\r
                \r
                try {\r
                \r
                try {\r
-                       List<Book> matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
+                       List<IBook> matchResult = cdmGenericDao.findMatching(book3, matchStrategy);\r
                        Assert.assertNotNull("Resultlist must not be null", matchResult);\r
                        Assert.assertEquals("Resultlist must have 2 entries", 2, matchResult.size());\r
                        Assert.assertTrue("Resultlist must contain book 1", matchResult.contains(book1));\r
                        Assert.assertNotNull("Resultlist must not be null", matchResult);\r
                        Assert.assertEquals("Resultlist must have 2 entries", 2, matchResult.size());\r
                        Assert.assertTrue("Resultlist must contain book 1", matchResult.contains(book1));\r