(no commit message)
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 30 Apr 2008 15:02:58 +0000 (15:02 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 30 Apr 2008 15:02:58 +0000 (15:02 +0000)
.gitattributes
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/integration/CreateDataTest.java [new file with mode: 0644]

index 81975046a2b4eaba78d8205776945160d6a47b9d..d6387a8b1061a4368ff11e9a8fe4f2872aae79b5 100644 (file)
@@ -462,6 +462,7 @@ cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/Datasource.java -te
 cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestDatabase.java -text
 cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestService.java -text
 cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestTaxonFunction.java -text
+cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/integration/CreateDataTest.java -text
 cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/integration/TermLoaderIntegrationTest.java -text
 cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/suite/CdmTestSuite.java -text
 cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/unit/CdmUnitTestBase.java -text
diff --git a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/integration/CreateDataTest.java b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/integration/CreateDataTest.java
new file mode 100644 (file)
index 0000000..46ee156
--- /dev/null
@@ -0,0 +1,158 @@
+\r
+package eu.etaxonomy.cdm.test.integration;\r
+\r
+\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import org.apache.log4j.Logger;\r
+import static org.junit.Assert.*;\r
+import org.junit.Test;\r
+import org.junit.After;\r
+import org.junit.AfterClass;\r
+import org.junit.Before;\r
+import org.junit.BeforeClass;\r
+\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.common.CdmUtils;\r
+import eu.etaxonomy.cdm.database.CdmDataSource;\r
+import eu.etaxonomy.cdm.database.DatabaseTypeEnum;\r
+import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
+import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.description.TextData;\r
+import eu.etaxonomy.cdm.model.name.BotanicalName;\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+\r
+public class CreateDataTest {\r
+       private static Logger logger = Logger.getLogger(CreateDataTest.class);\r
+\r
+       private static boolean isCreated;\r
+       private CdmApplicationController app;\r
+       private static final String genusUuid = "c399e245-3def-427d-8502-afa0ae87e875";\r
+       \r
+       @BeforeClass\r
+       public static void setUpBeforeClass() throws Exception {\r
+               isCreated = false;\r
+       }\r
+\r
+       @AfterClass\r
+       public static void tearDownAfterClass() throws Exception {\r
+       }\r
+\r
+       @Before\r
+       public void setUp() throws Exception {\r
+               DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;\r
+               if (isCreated == false){\r
+                        dbSchemaValidation = DbSchemaValidation.CREATE;\r
+               }\r
+               ICdmDataSource dataSource = cdm_test();\r
+               app  = CdmApplicationController.NewInstance(dataSource, dbSchemaValidation);\r
+       }\r
+\r
+       @After\r
+       public void tearDown() throws Exception {\r
+               isCreated = true;\r
+       }\r
+       \r
+       \r
+       //just temporarly\r
+       public static ICdmDataSource cdm_test(){\r
+               DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;\r
+               String cdmServer = "192.168.2.10";\r
+               String cdmDB = "cdm_test_andreasM"; \r
+               String cdmUserName = "edit";\r
+               return makeDestination(cdmServer, cdmDB, -1, cdmUserName, null);\r
+       }\r
+       \r
+       /**\r
+        * initializes source\r
+        * @return true, if connection establisehd\r
+        */\r
+       private static ICdmDataSource makeDestination(String cdmServer, String cdmDB, int port, String cdmUserName, String pwd ){\r
+               //establish connection\r
+               try {\r
+                       if (pwd == null){\r
+                               pwd = CdmUtils.readInputLine("Please insert password for " + CdmUtils.Nz(cdmUserName) + ": ");\r
+                       }\r
+                       //TODO not MySQL\r
+                       ICdmDataSource destination = CdmDataSource.NewMySqlInstance(cdmServer, cdmDB, port, cdmUserName, pwd);\r
+                       return destination;\r
+               } catch (Exception e) {\r
+                       logger.error(e);\r
+                       return null;\r
+               }\r
+       }\r
+       \r
+       \r
+/* ********************* TESTS *********************************/\r
+       \r
+       @Test\r
+       public void testCreateTaxon(){\r
+               //Taxon with childs, basionym, childrens synonyms, child misapplied Name\r
+               Taxon genusTaxon = eu.etaxonomy.cdm.datagenerator.TaxonGenerator.getTestTaxon();\r
+               genusTaxon.setUuid(UUID.fromString(genusUuid));\r
+               app.getTaxonService().saveTaxon(genusTaxon);\r
+       }\r
+       \r
+       @Test\r
+       public void testLoadTaxon(){\r
+               //Taxon with childs, basionym, childrens synonyms, child misapplied Name\r
+               \r
+               Taxon genusTaxon = (Taxon)app.getTaxonService().getTaxonByUuid(UUID.fromString(genusUuid));\r
+               BotanicalName genusName = (BotanicalName)genusTaxon.getName();\r
+               \r
+               genusName.getTaxonBases();\r
+               \r
+               Set<Taxon> children = genusTaxon.getTaxonomicChildren();\r
+               for (Taxon child : children){\r
+                       child.getSynonyms();\r
+                       child.getMisappliedNames();\r
+                       child.getHomotypicGroup();\r
+                       child.getHomotypicSynonyms();\r
+               }\r
+               \r
+               Set<TaxonDescription> descriptions = genusTaxon.getDescriptions();\r
+               TaxonDescription description = descriptions.iterator().next();\r
+               \r
+               Set<DescriptionElementBase> descriptionElements = description.getElements();\r
+               \r
+               Language language = Language.DEFAULT(); \r
+               for (DescriptionElementBase descriptionElement : descriptionElements){\r
+                       if (descriptionElement instanceof TextData){\r
+                               TextData textData = (TextData)descriptionElement;\r
+                               textData.getText(language);\r
+                       }else if(descriptionElement instanceof CommonTaxonName){\r
+                               CommonTaxonName commonTaxonName = (CommonTaxonName)descriptionElement;\r
+                               commonTaxonName.getName();\r
+                               commonTaxonName.getLanguage();\r
+                       }else{\r
+                               fail();\r
+                       }\r
+               }\r
+               \r
+       }\r
+       \r
+       \r
+       @Test\r
+       public void testSaven(){\r
+               ITaxonService taxonService = app.getTaxonService();\r
+               Taxon genusTaxon = (Taxon)taxonService.getTaxonByUuid(UUID.fromString(genusUuid));\r
+               BotanicalName genusName = (BotanicalName)genusTaxon.getName();\r
+               \r
+               BotanicalName newName = BotanicalName.NewInstance(Rank.SPECIES());\r
+               Taxon newTaxon = Taxon.NewInstance(newName, genusTaxon.getSec());\r
+               genusTaxon.addTaxonomicChild(newTaxon, null, "5677");\r
+               taxonService.saveTaxon(newTaxon);\r
+               app.close();\r
+       }\r
+\r
+       \r
+}\r