--- /dev/null
+\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