*\r
*/\r
public class NameServiceImplTest extends CdmTransactionalIntegrationTest {\r
- private static final Logger logger = Logger.getLogger(NameServiceImplTest.class);\r
+ private static final Logger logger = Logger.getLogger(NameServiceImplTest.class);\r
\r
- @SpringBeanByType\r
- private INameService nameService;\r
+ @SpringBeanByType\r
+ private INameService nameService;\r
\r
- @SpringBeanByType\r
- private IOccurrenceService occurrenceService;\r
+ @SpringBeanByType\r
+ private IOccurrenceService occurrenceService;\r
\r
- @SpringBeanByType\r
- private ITaxonService taxonService;\r
+ @SpringBeanByType\r
+ private ITaxonService taxonService;\r
\r
- @SpringBeanByType\r
- private ITermService termService;\r
+ @SpringBeanByType\r
+ private ITermService termService;\r
\r
\r
/* ******************** TESTS ********************************************/\r
\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#setDao(eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao)}.\r
- */\r
- @Test\r
- public void testSetDao() {\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#setDao(eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao)}.\r
+ */\r
+ @Test\r
+ public void testSetDao() {\r
// Assert.assertNotNull(((NameServiceImpl)nameService).dao);\r
- }\r
+ }\r
\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#setVocabularyDao(eu.etaxonomy.cdm.persistence.dao.common.ITermVocabularyDao)}.\r
- */\r
- @Test\r
- public void testSetVocabularyDao() {\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#setVocabularyDao(eu.etaxonomy.cdm.persistence.dao.common.ITermVocabularyDao)}.\r
+ */\r
+ @Test\r
+ public void testSetVocabularyDao() {\r
// Assert.assertNotNull(( (NameServiceImpl)nameService).vocabularyDao);\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getNamesByName(java.lang.String)}.\r
- */\r
- @Test\r
- public void testGetNamesByName() {\r
- logger.warn("Not yet implemented");\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getTaxonNameByUuid(java.util.UUID)}.\r
- */\r
- @Test\r
- public void testGetTaxonNameByUuid() {\r
- logger.warn("Not yet implemented");\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#saveTaxonName(eu.etaxonomy.cdm.model.name.TaxonNameBase)}.\r
- */\r
- @Test\r
- public void testSaveTaxonName() {\r
- logger.warn("Not yet implemented");\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#saveTaxonNameAll(java.util.Collection)}.\r
- */\r
- @Test\r
- public void testSaveTaxonNameAll() {\r
- logger.warn("Not yet implemented");\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#removeTaxon(eu.etaxonomy.cdm.model.name.TaxonNameBase)}.\r
- */\r
- @Test\r
- public void testRemoveTaxon() {\r
- logger.warn("Not yet implemented");\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getAllNames(int, int)}.\r
- */\r
- @Test\r
- public void testGetAllNames() {\r
- logger.warn("Not yet implemented");\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getRankVocabulary()}.\r
- */\r
- @Test\r
- @Ignore //FIXME assertSame does not work yet\r
- public void testGetRankVocabulary() {\r
- //TODO move test to vocabulary service\r
- OrderedTermVocabulary<Rank> rankVocabulary = nameService.getRankVocabulary();\r
- assertNotNull(rankVocabulary);\r
- assertEquals(66, rankVocabulary.size());\r
- Rank highestRank = rankVocabulary.getHighestTerm();\r
- assertEquals(Rank.EMPIRE(), highestRank);\r
- assertEquals(Rank.DOMAIN(), rankVocabulary.getNextLowerTerm(highestRank));\r
- assertSame(Rank.EMPIRE(), highestRank);\r
- assertSame(Rank.DOMAIN(), rankVocabulary.getNextLowerTerm(highestRank));\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getTypeDesignationVocabulary()}.\r
- */\r
- @Test\r
- @Ignore //not yet correctly implemented\r
- public void testGetTypeDesignationVocabulary() {\r
- //TODO move test to vocabulary service\r
- OrderedTermVocabulary<SpecimenTypeDesignationStatus> typeDesignationVocabulary =\r
- nameService.getSpecimenTypeDesignationVocabulary();\r
- assertNotNull(typeDesignationVocabulary);\r
- assertEquals(20, typeDesignationVocabulary.size());\r
- SpecimenTypeDesignationStatus highestType = typeDesignationVocabulary.getHighestTerm();\r
- assertEquals(SpecimenTypeDesignationStatus.EPITYPE(), highestType);\r
- assertEquals(SpecimenTypeDesignationStatus.HOLOTYPE(), typeDesignationVocabulary.getNextLowerTerm(highestType));\r
- assertSame(SpecimenTypeDesignationStatus.EPITYPE(), highestType);\r
- assertSame(SpecimenTypeDesignationStatus.HOLOTYPE(), typeDesignationVocabulary.getNextLowerTerm(highestType));\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- public void testGenerateTitleCache() {\r
- logger.warn("Not yet implemented");\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class)\r
- public void testDeleteTaxonNameBaseWithNameRelations() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship","DescriptionBase","NomenclaturalStatus","TaxonBase","SpecimenOrObservationBase","OriginalSourceBase","DescriptionElementBase"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- TaxonNameBase<?,?> nameWithBasionym = BotanicalName.NewInstance(getSpeciesRank());\r
- nameWithBasionym.setTitleCache("nameWithBasionym", true);\r
-\r
- NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
- name1.addRelationshipToName(nameWithBasionym,nameRelType , null, null, null);\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getNamesByName(java.lang.String)}.\r
+ */\r
+ @Test\r
+ public void testGetNamesByName() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getTaxonNameByUuid(java.util.UUID)}.\r
+ */\r
+ @Test\r
+ public void testGetTaxonNameByUuid() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#saveTaxonName(eu.etaxonomy.cdm.model.name.TaxonNameBase)}.\r
+ */\r
+ @Test\r
+ public void testSaveTaxonName() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#saveTaxonNameAll(java.util.Collection)}.\r
+ */\r
+ @Test\r
+ public void testSaveTaxonNameAll() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#removeTaxon(eu.etaxonomy.cdm.model.name.TaxonNameBase)}.\r
+ */\r
+ @Test\r
+ public void testRemoveTaxon() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getAllNames(int, int)}.\r
+ */\r
+ @Test\r
+ public void testGetAllNames() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getRankVocabulary()}.\r
+ */\r
+ @Test\r
+ @Ignore //FIXME assertSame does not work yet\r
+ public void testGetRankVocabulary() {\r
+ //TODO move test to vocabulary service\r
+ OrderedTermVocabulary<Rank> rankVocabulary = nameService.getRankVocabulary();\r
+ assertNotNull(rankVocabulary);\r
+ assertEquals(66, rankVocabulary.size());\r
+ Rank highestRank = rankVocabulary.getHighestTerm();\r
+ assertEquals(Rank.EMPIRE(), highestRank);\r
+ assertEquals(Rank.DOMAIN(), rankVocabulary.getNextLowerTerm(highestRank));\r
+ assertSame(Rank.EMPIRE(), highestRank);\r
+ assertSame(Rank.DOMAIN(), rankVocabulary.getNextLowerTerm(highestRank));\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#getTypeDesignationVocabulary()}.\r
+ */\r
+ @Test\r
+ @Ignore //not yet correctly implemented\r
+ public void testGetTypeDesignationVocabulary() {\r
+ //TODO move test to vocabulary service\r
+ OrderedTermVocabulary<SpecimenTypeDesignationStatus> typeDesignationVocabulary =\r
+ nameService.getSpecimenTypeDesignationVocabulary();\r
+ assertNotNull(typeDesignationVocabulary);\r
+ assertEquals(20, typeDesignationVocabulary.size());\r
+ SpecimenTypeDesignationStatus highestType = typeDesignationVocabulary.getHighestTerm();\r
+ assertEquals(SpecimenTypeDesignationStatus.EPITYPE(), highestType);\r
+ assertEquals(SpecimenTypeDesignationStatus.HOLOTYPE(), typeDesignationVocabulary.getNextLowerTerm(highestType));\r
+ assertSame(SpecimenTypeDesignationStatus.EPITYPE(), highestType);\r
+ assertSame(SpecimenTypeDesignationStatus.HOLOTYPE(), typeDesignationVocabulary.getNextLowerTerm(highestType));\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ public void testGenerateTitleCache() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class)\r
+ public void testDeleteTaxonNameBaseWithNameRelations() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship","DescriptionBase","NomenclaturalStatus","TaxonBase","SpecimenOrObservationBase","OriginalSourceBase","DescriptionElementBase"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ TaxonNameBase<?,?> nameWithBasionym = BotanicalName.NewInstance(getSpeciesRank());\r
+ nameWithBasionym.setTitleCache("nameWithBasionym", true);\r
+\r
+ NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
+ name1.addRelationshipToName(nameWithBasionym,nameRelType , null, null, null);\r
// nameWithBasionym.addBasionym(name1);\r
- nameService.save(name1);\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1);\r
- Assert.fail("Delete should throw an error as long as name relationships exist.");\r
- } catch (Exception e) {\r
- if (e.getMessage().contains("Name can't be deleted as it is used in name relationship")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
+ nameService.save(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1);\r
+ Assert.fail("Delete should throw an error as long as name relationships exist.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().contains("Name can't be deleted as it is used in name relationship")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
// printDataSet(System.out, tableNames);\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
- nameWithBasionym = ((NameRelationship)name1.getNameRelations().iterator().next()).getToName();\r
- nameWithBasionym.removeBasionyms();\r
- nameService.delete(name1); //should throw now exception\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
-\r
- }\r
-\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
-\r
- @Test\r
- @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="BlankDataSet.xml")\r
- public void testDeleteTaxonNameBaseConfiguratorWithNameRelations() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- TaxonNameBase<?,?> nameWithBasionym = BotanicalName.NewInstance(getSpeciesRank());\r
- nameWithBasionym.setTitleCache("nameWithBasionym", true);\r
-\r
- NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
- name1.addRelationshipToName(nameWithBasionym,nameRelType , null, null, null);\r
- nameService.save(name1);\r
- commitAndStartNewTransaction(tableNames);\r
- NameDeletionConfigurator config = new NameDeletionConfigurator();\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1, config);\r
- Assert.fail("Delete should throw an error as long as name relationships exist.");\r
- } catch (Exception e) {\r
- if (e.getMessage().startsWith("Name can't be deleted as it is used in name relationship")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+ nameWithBasionym = ((NameRelationship)name1.getNameRelations().iterator().next()).getToName();\r
+ nameWithBasionym.removeBasionyms();\r
+ nameService.delete(name1); //should throw now exception\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+\r
+ }\r
+\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+\r
+ @Test\r
+ @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class)\r
+ public void testDeleteTaxonNameBaseConfiguratorWithNameRelations() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ TaxonNameBase<?,?> nameWithBasionym = BotanicalName.NewInstance(getSpeciesRank());\r
+ nameWithBasionym.setTitleCache("nameWithBasionym", true);\r
+\r
+ NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
+ name1.addRelationshipToName(nameWithBasionym,nameRelType , null, null, null);\r
+ nameService.save(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
+ NameDeletionConfigurator config = new NameDeletionConfigurator();\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1, config);\r
+ Assert.fail("Delete should throw an error as long as name relationships exist.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().startsWith("Name can't be deleted as it is used in name relationship")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
// printDataSet(System.out, tableNames);\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
-\r
- //ignore is basionym for\r
- config.setIgnoreIsBasionymFor(true);\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1, config);\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- } catch (Exception e) {\r
- Assert.fail("Delete should not throw an error for .");\r
- }\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- public void testDeleteTaxonNameBaseConfiguratorWithNameRelationsAll() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- TaxonNameBase<?,?> nameWithBasionym = BotanicalName.NewInstance(getSpeciesRank());\r
- nameWithBasionym.setTitleCache("nameWithBasionym", true);\r
-\r
- NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
- name1.addRelationshipToName(nameWithBasionym,nameRelType , null, null, null);\r
- nameService.save(name1);\r
- commitAndStartNewTransaction(tableNames);\r
- NameDeletionConfigurator config = new NameDeletionConfigurator();\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1, config);\r
- Assert.fail("Delete should throw an error as long as name relationships exist.");\r
- } catch (Exception e) {\r
- if (e.getMessage().startsWith("Name can't be deleted as it is used in name relationship")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+\r
+ //ignore is basionym for\r
+ config.setIgnoreIsBasionymFor(true);\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1, config);\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ } catch (Exception e) {\r
+ Assert.fail("Delete should not throw an error for .");\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ public void testDeleteTaxonNameBaseConfiguratorWithNameRelationsAll() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ TaxonNameBase<?,?> nameWithBasionym = BotanicalName.NewInstance(getSpeciesRank());\r
+ nameWithBasionym.setTitleCache("nameWithBasionym", true);\r
+\r
+ NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
+ name1.addRelationshipToName(nameWithBasionym,nameRelType , null, null, null);\r
+ nameService.save(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
+ NameDeletionConfigurator config = new NameDeletionConfigurator();\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1, config);\r
+ Assert.fail("Delete should throw an error as long as name relationships exist.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().startsWith("Name can't be deleted as it is used in name relationship")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
// printDataSet(System.out, tableNames);\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
-\r
- //ignore all name relationships\r
- config.setRemoveAllNameRelationships(true);\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1, config);\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- } catch (Exception e) {\r
- Assert.fail("Delete should not throw an error for .");\r
- }\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- public void testDeleteTaxonNameBaseConfiguratorWithHasBasionym() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- TaxonNameBase<?,?> basionym = BotanicalName.NewInstance(getSpeciesRank());\r
- basionym.setTitleCache("basionym", true);\r
-\r
- NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
- basionym.addRelationshipToName(name1,nameRelType , null, null, null);\r
- nameService.save(name1);\r
- commitAndStartNewTransaction(tableNames);\r
- NameDeletionConfigurator config = new NameDeletionConfigurator();\r
- config.setIgnoreHasBasionym(false);\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1, config);\r
- Assert.fail("Delete should throw an error as long as name relationships exist.");\r
- } catch (Exception e) {\r
- if (e.getMessage().startsWith("Name can't be deleted as it is used in name relationship")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+\r
+ //ignore all name relationships\r
+ config.setRemoveAllNameRelationships(true);\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1, config);\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ } catch (Exception e) {\r
+ Assert.fail("Delete should not throw an error for .");\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ public void testDeleteTaxonNameBaseConfiguratorWithHasBasionym() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ TaxonNameBase<?,?> basionym = BotanicalName.NewInstance(getSpeciesRank());\r
+ basionym.setTitleCache("basionym", true);\r
+\r
+ NameRelationshipType nameRelType = (NameRelationshipType)termService.find(NameRelationshipType.BASIONYM().getUuid());\r
+ basionym.addRelationshipToName(name1,nameRelType , null, null, null);\r
+ nameService.save(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
+ NameDeletionConfigurator config = new NameDeletionConfigurator();\r
+ config.setIgnoreHasBasionym(false);\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1, config);\r
+ Assert.fail("Delete should throw an error as long as name relationships exist.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().startsWith("Name can't be deleted as it is used in name relationship")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
// printDataSet(System.out, tableNames);\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
-\r
- //ignore has basionym\r
- config.setIgnoreHasBasionym(true);\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1, config);\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- } catch (Exception e) {\r
- Assert.fail("Delete should not throw an error for .");\r
- }\r
- }\r
-\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @Ignore //currently does not run in suite\r
- public void testDeleteTaxonNameBaseWithHybridRelations() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- NonViralName<?> parent = BotanicalName.NewInstance(getSpeciesRank());\r
- parent.setTitleCache("parent", true);\r
- NonViralName<?> child = BotanicalName.NewInstance(getSpeciesRank());\r
- child.setTitleCache("child", true);\r
-\r
- HybridRelationshipType relType = (HybridRelationshipType)termService.find(HybridRelationshipType.FIRST_PARENT().getUuid());\r
- name1.addHybridParent(parent, relType, null);\r
- nameService.save(name1);\r
- commitAndStartNewTransaction(tableNames); //otherwise first save is rolled back with following failing delete\r
- Assert.assertEquals("'Parent' should be a parent in a hybrid relation.", 1,parent.getHybridParentRelations().size());\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+\r
+ //ignore has basionym\r
+ config.setIgnoreHasBasionym(true);\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1, config);\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ } catch (Exception e) {\r
+ Assert.fail("Delete should not throw an error for .");\r
+ }\r
+ }\r
+\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @Ignore //currently does not run in suite\r
+ public void testDeleteTaxonNameBaseWithHybridRelations() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ NonViralName<?> parent = BotanicalName.NewInstance(getSpeciesRank());\r
+ parent.setTitleCache("parent", true);\r
+ NonViralName<?> child = BotanicalName.NewInstance(getSpeciesRank());\r
+ child.setTitleCache("child", true);\r
+\r
+ HybridRelationshipType relType = (HybridRelationshipType)termService.find(HybridRelationshipType.FIRST_PARENT().getUuid());\r
+ name1.addHybridParent(parent, relType, null);\r
+ nameService.save(name1);\r
+ commitAndStartNewTransaction(tableNames); //otherwise first save is rolled back with following failing delete\r
+ Assert.assertEquals("'Parent' should be a parent in a hybrid relation.", 1,parent.getHybridParentRelations().size());\r
// printDataSet(System.out, tableNames);\r
\r
- //parent\r
- try {\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1);\r
- //delete via cascade -> no exception\r
- } catch (Exception e) {\r
- Assert.fail("Delete should throw NO exception when deleting a hybrid child: " + e.getMessage());\r
- }\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- parent = (NonViralName<?>)nameService.find(parent.getUuid());\r
- Assert.assertEquals("'Parent' should not be a parent anymore.", 0,parent.getHybridParentRelations().size());\r
-\r
- //child\r
- name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.addHybridChild(child, relType, null);\r
- nameService.save(name1);\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- try {\r
- nameService.delete(name1);\r
- Assert.fail("Delete should throw an error as long as hybrid child exist.");\r
- } catch (Exception e) {\r
- if (e.getMessage().contains("Name can't be deleted as it is a parent in")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
- name1.removeHybridChild(child);\r
- nameService.delete(name1); //should throw now exception\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @Ignore //currently does not run in suite\r
- public void testDeleteTaxonNameBaseInConcept() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","TaxonBase"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- TaxonNameBase<?,?> basionym = BotanicalName.NewInstance(getSpeciesRank());\r
- basionym.setTitleCache("basionym", true);\r
-\r
- Taxon taxon = Taxon.NewInstance(name1, null);\r
- nameService.save(name1);\r
- taxonService.save(taxon);\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- try {\r
- nameService.delete(name1);\r
- Assert.fail("Delete should throw an error as long as name is used in a concept.");\r
- } catch (Exception e) {\r
- if (e.getMessage().contains("Name can't be deleted as it is used in concept")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
- taxon = (Taxon)taxonService.find(taxon.getUuid());\r
- Assert.assertNotNull("Taxon should still be in database",taxon);\r
- taxon.setName(basionym);\r
- taxonService.save(taxon);\r
- nameService.delete(name1); //should throw now exception\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- taxon = (Taxon)taxonService.find(taxon.getUuid());\r
- Assert.assertNotNull("Taxon should still be in database",taxon);\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @Ignore //currently does not run in suite\r
- public void testDeleteTaxonNameBaseAsStoredUnder() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","SpecimenOrObservationBase"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- Specimen specimen = Specimen.NewInstance();\r
- specimen.setStoredUnder(name1);\r
-\r
- occurrenceService.save(specimen);\r
- nameService.save(name1);\r
- try {\r
- commitAndStartNewTransaction(tableNames);\r
- nameService.delete(name1);\r
- Assert.fail("Delete should throw an error as long as name is used for specimen#storedUnder.");\r
- } catch (Exception e) {\r
- if (e.getMessage().contains("Name can't be deleted as it is used as derivedUnit#storedUnder")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
- specimen = (Specimen)occurrenceService.find(specimen.getUuid());\r
- Assert.assertNotNull("Specimen should still be in database",name1);\r
- specimen.setStoredUnder(null);\r
- occurrenceService.saveOrUpdate(specimen);\r
- nameService.delete(name1); //should throw now exception\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- specimen = (Specimen)occurrenceService.find(specimen.getUuid());\r
- Assert.assertNotNull("Specimen should still be in database",specimen);\r
-\r
- occurrenceService.delete(specimen); //this is to better run this test in the test suit\r
-\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @Ignore //currently does not run in suite\r
- public void testDeleteTaxonNameBaseInSource() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","DescriptionBase","TaxonBase","OriginalSourceBase","DescriptionElementBase"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
- TaxonNameBase<?,?> taxonName = BotanicalName.NewInstance(getSpeciesRank());\r
- taxonName.setTitleCache("taxonName", true);\r
- Taxon taxon = Taxon.NewInstance(taxonName, null);\r
-\r
- TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);\r
- Feature feature = (Feature)termService.find(Feature.DESCRIPTION().getUuid());\r
- Language lang = (Language)termService.find(Language.DEFAULT().getUuid());\r
- TextData textData = TextData.NewInstance("Any text", lang, null);\r
- textData.setFeature(feature);\r
- taxonDescription.addElement(textData);\r
- DescriptionElementSource source = DescriptionElementSource.NewInstance(null, null, name1, "");\r
- textData.addSource(source);\r
- taxonService.saveOrUpdate(taxon);\r
- nameService.save(name1);\r
- try {\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1);\r
- Assert.fail("Delete should throw an error as long as name is used in a source.");\r
- } catch (Exception e) {\r
- if (e.getMessage().contains("Name can't be deleted as it is used as descriptionElementSource#nameUsedInSource")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
- taxon = (Taxon)taxonService.find(taxon.getUuid());\r
- Assert.assertNotNull("Taxon should still be in database",name1);\r
- source = taxon.getDescriptions().iterator().next().getElements().iterator().next().getSources().iterator().next();\r
- source.setNameUsedInSource(null);\r
- taxonService.saveOrUpdate(taxon);\r
- nameService.delete(name1); //should throw now exception\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- taxon = (Taxon)taxonService.find(taxon.getUuid());\r
- Assert.assertNotNull("Taxon should still be in database",taxon);\r
- source = taxon.getDescriptions().iterator().next().getElements().iterator().next().getSources().iterator().next();\r
- Assert.assertNull("Source should not have a nameUsedInSource anymore",source.getNameUsedInSource());\r
- }\r
-\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @Ignore //currently does not run in suite\r
- public void testDeleteTaxonNameBaseAsType() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name used as type", true);\r
-\r
- NonViralName<?> higherName = BotanicalName.NewInstance(getGenusRank());\r
- higherName.setTitleCache("genus name", true);\r
- NameTypeDesignationStatus typeStatus = (NameTypeDesignationStatus)termService.find(NameTypeDesignationStatus.AUTOMATIC().getUuid());\r
- boolean addToAllHomotypicNames = true;\r
- higherName.addNameTypeDesignation(name1, null, null, null, typeStatus, addToAllHomotypicNames);\r
- nameService.save(higherName);\r
- try {\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1);\r
- Assert.fail("Delete should throw an error as long as name is used in a type designation.");\r
- } catch (Exception e) {\r
- if (e.getMessage().contains("Name can't be deleted as it is used as a name type")){\r
- //ok\r
- endTransaction(); //exception rolls back transaction!\r
- startNewTransaction();\r
- }else{\r
- Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
- }\r
- }\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNotNull("Name should still be in database",name1);\r
- higherName = (NonViralName<?>)nameService.find(higherName.getUuid());\r
- higherName.getNameTypeDesignations().iterator().next().removeType(); //keeps the designation but removes the name from it\r
+ //parent\r
+ try {\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1);\r
+ //delete via cascade -> no exception\r
+ } catch (Exception e) {\r
+ Assert.fail("Delete should throw NO exception when deleting a hybrid child: " + e.getMessage());\r
+ }\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ parent = (NonViralName<?>)nameService.find(parent.getUuid());\r
+ Assert.assertEquals("'Parent' should not be a parent anymore.", 0,parent.getHybridParentRelations().size());\r
+\r
+ //child\r
+ name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.addHybridChild(child, relType, null);\r
+ nameService.save(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ try {\r
+ nameService.delete(name1);\r
+ Assert.fail("Delete should throw an error as long as hybrid child exist.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().contains("Name can't be deleted as it is a parent in")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+ name1.removeHybridChild(child);\r
+ nameService.delete(name1); //should throw now exception\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @Ignore //currently does not run in suite\r
+ public void testDeleteTaxonNameBaseInConcept() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","TaxonBase"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ TaxonNameBase<?,?> basionym = BotanicalName.NewInstance(getSpeciesRank());\r
+ basionym.setTitleCache("basionym", true);\r
+\r
+ Taxon taxon = Taxon.NewInstance(name1, null);\r
+ nameService.save(name1);\r
+ taxonService.save(taxon);\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ try {\r
+ nameService.delete(name1);\r
+ Assert.fail("Delete should throw an error as long as name is used in a concept.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().contains("Name can't be deleted as it is used in concept")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+ taxon = (Taxon)taxonService.find(taxon.getUuid());\r
+ Assert.assertNotNull("Taxon should still be in database",taxon);\r
+ taxon.setName(basionym);\r
+ taxonService.save(taxon);\r
+ nameService.delete(name1); //should throw now exception\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ taxon = (Taxon)taxonService.find(taxon.getUuid());\r
+ Assert.assertNotNull("Taxon should still be in database",taxon);\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @Ignore //currently does not run in suite\r
+ public void testDeleteTaxonNameBaseAsStoredUnder() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","SpecimenOrObservationBase"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ Specimen specimen = Specimen.NewInstance();\r
+ specimen.setStoredUnder(name1);\r
+\r
+ occurrenceService.save(specimen);\r
+ nameService.save(name1);\r
+ try {\r
+ commitAndStartNewTransaction(tableNames);\r
+ nameService.delete(name1);\r
+ Assert.fail("Delete should throw an error as long as name is used for specimen#storedUnder.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().contains("Name can't be deleted as it is used as derivedUnit#storedUnder")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+ specimen = (Specimen)occurrenceService.find(specimen.getUuid());\r
+ Assert.assertNotNull("Specimen should still be in database",name1);\r
+ specimen.setStoredUnder(null);\r
+ occurrenceService.saveOrUpdate(specimen);\r
+ nameService.delete(name1); //should throw now exception\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ specimen = (Specimen)occurrenceService.find(specimen.getUuid());\r
+ Assert.assertNotNull("Specimen should still be in database",specimen);\r
+\r
+ occurrenceService.delete(specimen); //this is to better run this test in the test suit\r
+\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @Ignore //currently does not run in suite\r
+ public void testDeleteTaxonNameBaseInSource() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","DescriptionBase","TaxonBase","OriginalSourceBase","DescriptionElementBase"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+ TaxonNameBase<?,?> taxonName = BotanicalName.NewInstance(getSpeciesRank());\r
+ taxonName.setTitleCache("taxonName", true);\r
+ Taxon taxon = Taxon.NewInstance(taxonName, null);\r
+\r
+ TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);\r
+ Feature feature = (Feature)termService.find(Feature.DESCRIPTION().getUuid());\r
+ Language lang = (Language)termService.find(Language.DEFAULT().getUuid());\r
+ TextData textData = TextData.NewInstance("Any text", lang, null);\r
+ textData.setFeature(feature);\r
+ taxonDescription.addElement(textData);\r
+ DescriptionElementSource source = DescriptionElementSource.NewInstance(null, null, name1, "");\r
+ textData.addSource(source);\r
+ taxonService.saveOrUpdate(taxon);\r
+ nameService.save(name1);\r
+ try {\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1);\r
+ Assert.fail("Delete should throw an error as long as name is used in a source.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().contains("Name can't be deleted as it is used as descriptionElementSource#nameUsedInSource")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+ taxon = (Taxon)taxonService.find(taxon.getUuid());\r
+ Assert.assertNotNull("Taxon should still be in database",name1);\r
+ source = taxon.getDescriptions().iterator().next().getElements().iterator().next().getSources().iterator().next();\r
+ source.setNameUsedInSource(null);\r
+ taxonService.saveOrUpdate(taxon);\r
+ nameService.delete(name1); //should throw now exception\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ taxon = (Taxon)taxonService.find(taxon.getUuid());\r
+ Assert.assertNotNull("Taxon should still be in database",taxon);\r
+ source = taxon.getDescriptions().iterator().next().getElements().iterator().next().getSources().iterator().next();\r
+ Assert.assertNull("Source should not have a nameUsedInSource anymore",source.getNameUsedInSource());\r
+ }\r
+\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @Ignore //currently does not run in suite\r
+ public void testDeleteTaxonNameBaseAsType() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name used as type", true);\r
+\r
+ NonViralName<?> higherName = BotanicalName.NewInstance(getGenusRank());\r
+ higherName.setTitleCache("genus name", true);\r
+ NameTypeDesignationStatus typeStatus = (NameTypeDesignationStatus)termService.find(NameTypeDesignationStatus.AUTOMATIC().getUuid());\r
+ boolean addToAllHomotypicNames = true;\r
+ higherName.addNameTypeDesignation(name1, null, null, null, typeStatus, addToAllHomotypicNames);\r
+ nameService.save(higherName);\r
+ try {\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1);\r
+ Assert.fail("Delete should throw an error as long as name is used in a type designation.");\r
+ } catch (Exception e) {\r
+ if (e.getMessage().contains("Name can't be deleted as it is used as a name type")){\r
+ //ok\r
+ endTransaction(); //exception rolls back transaction!\r
+ startNewTransaction();\r
+ }else{\r
+ Assert.fail("Unexpected error occurred when trying to delete taxon name: " + e.getMessage());\r
+ }\r
+ }\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNotNull("Name should still be in database",name1);\r
+ higherName = (NonViralName<?>)nameService.find(higherName.getUuid());\r
+ higherName.getNameTypeDesignations().iterator().next().removeType(); //keeps the designation but removes the name from it\r
// nameService.deleteTypeDesignation(higherName,commitAndStartNewTransaction(tableNames) ); //deletes the complete designation //both options can be used\r
- nameService.delete(name1); //should throw now exception\r
- commitAndStartNewTransaction(tableNames);\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
- higherName = (NonViralName<?>)nameService.find(higherName.getUuid());\r
- Assert.assertNotNull("Higher name should still exist in database",higherName);\r
- Assert.assertEquals("Higher name should not have type designations anymore",1, higherName.getTypeDesignations().size());\r
- }\r
-\r
-\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @Ignore //currently does not run in suite\r
- public void testDeleteTaxonNameBase() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship","DescriptionBase","NomenclaturalStatus","TaxonBase","SpecimenOrObservationBase","OriginalSourceBase","DescriptionElementBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase"};\r
-\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1", true);\r
-\r
- //TaxonNameDescription\r
- name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- TaxonNameDescription.NewInstance(name1);\r
- nameService.saveOrUpdate(name1);\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1); //should throw now exception\r
- setComplete();\r
- endTransaction();\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- Assert.assertNull("Name should not be in database anymore",name1);\r
+ nameService.delete(name1); //should throw now exception\r
+ commitAndStartNewTransaction(tableNames);\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
+ higherName = (NonViralName<?>)nameService.find(higherName.getUuid());\r
+ Assert.assertNotNull("Higher name should still exist in database",higherName);\r
+ Assert.assertEquals("Higher name should not have type designations anymore",1, higherName.getTypeDesignations().size());\r
+ }\r
+\r
+\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @Ignore //currently does not run in suite\r
+ public void testDeleteTaxonNameBase() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship","DescriptionBase","NomenclaturalStatus","TaxonBase","SpecimenOrObservationBase","OriginalSourceBase","DescriptionElementBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase"};\r
+\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1", true);\r
+\r
+ //TaxonNameDescription\r
+ name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ TaxonNameDescription.NewInstance(name1);\r
+ nameService.saveOrUpdate(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1); //should throw now exception\r
+ setComplete();\r
+ endTransaction();\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ Assert.assertNull("Name should not be in database anymore",name1);\r
\r
// printDataSet(System.out, tableNames);\r
\r
\r
- //NomenclaturalStatus\r
- name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- NomenclaturalStatusType nomStatusType = (NomenclaturalStatusType)termService.find(NomenclaturalStatusType.ILLEGITIMATE().getUuid());\r
- NomenclaturalStatus status = NomenclaturalStatus.NewInstance(nomStatusType);\r
- name1.addStatus(status);\r
- nameService.saveOrUpdate(name1);\r
- commitAndStartNewTransaction(tableNames);\r
+ //NomenclaturalStatus\r
+ name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ NomenclaturalStatusType nomStatusType = (NomenclaturalStatusType)termService.find(NomenclaturalStatusType.ILLEGITIMATE().getUuid());\r
+ NomenclaturalStatus status = NomenclaturalStatus.NewInstance(nomStatusType);\r
+ name1.addStatus(status);\r
+ nameService.saveOrUpdate(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1); //should throw now exception\r
- setComplete();\r
- endTransaction();\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1); //should throw now exception\r
+ setComplete();\r
+ endTransaction();\r
// printDataSet(System.out, tableNames);\r
\r
\r
- //Type Designations\r
- name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name with type designation", true);\r
- SpecimenTypeDesignation typeDesignation = SpecimenTypeDesignation.NewInstance();\r
- SpecimenTypeDesignationStatus typeStatus = (SpecimenTypeDesignationStatus)termService.find(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid());\r
- typeDesignation.setTypeStatus(typeStatus);\r
- Specimen specimen = Specimen.NewInstance();\r
- specimen.setTitleCache("Type specimen", true);\r
- occurrenceService.save(specimen);\r
- typeDesignation.setTypeSpecimen(specimen);\r
-\r
- name1.addTypeDesignation(typeDesignation, true);\r
- nameService.save(name1);\r
- commitAndStartNewTransaction(tableNames);\r
+ //Type Designations\r
+ name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name with type designation", true);\r
+ SpecimenTypeDesignation typeDesignation = SpecimenTypeDesignation.NewInstance();\r
+ SpecimenTypeDesignationStatus typeStatus = (SpecimenTypeDesignationStatus)termService.find(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid());\r
+ typeDesignation.setTypeStatus(typeStatus);\r
+ Specimen specimen = Specimen.NewInstance();\r
+ specimen.setTitleCache("Type specimen", true);\r
+ occurrenceService.save(specimen);\r
+ typeDesignation.setTypeSpecimen(specimen);\r
+\r
+ name1.addTypeDesignation(typeDesignation, true);\r
+ nameService.save(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
// printDataSet(System.out, tableNames);\r
\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1); //should throw now exception\r
- setComplete();\r
- endTransaction();\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1); //should throw now exception\r
+ setComplete();\r
+ endTransaction();\r
// printDataSet(System.out, tableNames);\r
\r
- }\r
-\r
- /**\r
- * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
- */\r
- @Test\r
- @Ignore //currently does not run in suite\r
- public void testDeleteTaxonNameBaseWithTypeInHomotypicalGroup() {\r
- final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship","DescriptionBase","NomenclaturalStatus","TaxonBase","SpecimenOrObservationBase","OriginalSourceBase","DescriptionElementBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase"};\r
-\r
- //Type Designations for homotypical group with > 1 names\r
- NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
- name1.setTitleCache("Name1 with type designation", true);\r
- NonViralName<?> name2 = BotanicalName.NewInstance(getSpeciesRank());\r
- name2.setTitleCache("Name2 with type designation", true);\r
- name2.setHomotypicalGroup(name1.getHomotypicalGroup());\r
-\r
- Specimen specimen = Specimen.NewInstance();\r
- specimen.setTitleCache("Type specimen 2", true);\r
- occurrenceService.save(specimen);\r
- SpecimenTypeDesignationStatus typeStatus = (SpecimenTypeDesignationStatus)termService.find(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid());\r
-\r
- SpecimenTypeDesignation typeDesignation = SpecimenTypeDesignation.NewInstance();\r
- typeDesignation.setTypeStatus(typeStatus);\r
- typeDesignation.setTypeSpecimen(specimen);\r
-\r
- boolean addToAllNames = true;\r
- name1.addTypeDesignation(typeDesignation, addToAllNames);\r
- nameService.saveOrUpdate(name1);\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
- nameService.delete(name1); //should throw now exception\r
- setComplete();\r
- endTransaction();\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.api.service.NameServiceImpl#generateTitleCache()}.\r
+ */\r
+ @Test\r
+ @Ignore //currently does not run in suite\r
+ public void testDeleteTaxonNameBaseWithTypeInHomotypicalGroup() {\r
+ final String[] tableNames = new String[]{"TaxonNameBase","NameRelationship","HybridRelationship","DescriptionBase","NomenclaturalStatus","TaxonBase","SpecimenOrObservationBase","OriginalSourceBase","DescriptionElementBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase"};\r
+\r
+ //Type Designations for homotypical group with > 1 names\r
+ NonViralName<?> name1 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name1.setTitleCache("Name1 with type designation", true);\r
+ NonViralName<?> name2 = BotanicalName.NewInstance(getSpeciesRank());\r
+ name2.setTitleCache("Name2 with type designation", true);\r
+ name2.setHomotypicalGroup(name1.getHomotypicalGroup());\r
+\r
+ Specimen specimen = Specimen.NewInstance();\r
+ specimen.setTitleCache("Type specimen 2", true);\r
+ occurrenceService.save(specimen);\r
+ SpecimenTypeDesignationStatus typeStatus = (SpecimenTypeDesignationStatus)termService.find(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid());\r
+\r
+ SpecimenTypeDesignation typeDesignation = SpecimenTypeDesignation.NewInstance();\r
+ typeDesignation.setTypeStatus(typeStatus);\r
+ typeDesignation.setTypeSpecimen(specimen);\r
+\r
+ boolean addToAllNames = true;\r
+ name1.addTypeDesignation(typeDesignation, addToAllNames);\r
+ nameService.saveOrUpdate(name1);\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ name1 = (NonViralName<?>)nameService.find(name1.getUuid());\r
+ nameService.delete(name1); //should throw now exception\r
+ setComplete();\r
+ endTransaction();\r
// printDataSet(System.out, tableNames);\r
\r
- }\r
+ }\r
\r
- @Test\r
- @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class)\r
- public void testDeleteTypeDesignation() {\r
- final String[] tableNames = new String[]{\r
- "TaxonNameBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase",\r
- "SpecimenOrObservationBase"};\r
+ @Test\r
+ @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class)\r
+ public void testDeleteTypeDesignation() {\r
+ final String[] tableNames = new String[]{\r
+ "TaxonNameBase","TypeDesignationBase","TaxonNameBase_TypeDesignationBase",\r
+ "SpecimenOrObservationBase"};\r
\r
// BotanicalName name1 = BotanicalName.NewInstance(getSpeciesRank());\r
// name1.setTitleCache("Name1");\r
//\r
\r
\r
- TaxonNameBase name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
- TaxonNameBase name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
- TaxonNameBase name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
- Specimen specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
- Fossil fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
-\r
- Set<TypeDesignationBase> desigs1 = name1.getTypeDesignations();\r
- Set<TypeDesignationBase> desigs2 = name2.getTypeDesignations();\r
- Set<TypeDesignationBase> desigs3 = name3.getTypeDesignations();\r
+ TaxonNameBase name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
+ TaxonNameBase name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
+ TaxonNameBase name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
+ Specimen specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
+ Fossil fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
+\r
+ Set<TypeDesignationBase> desigs1 = name1.getTypeDesignations();\r
+ Set<TypeDesignationBase> desigs2 = name2.getTypeDesignations();\r
+ Set<TypeDesignationBase> desigs3 = name3.getTypeDesignations();\r
\r
- Assert.assertEquals("name1 should have 2 type designations", 2, desigs1.size());\r
- Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
- Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
- Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
- Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("name1 should have 2 type designations", 2, desigs1.size());\r
+ Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
+ Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
+ Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
\r
- nameService.deleteTypeDesignation(null, null);\r
+ nameService.deleteTypeDesignation(null, null);\r
\r
- commitAndStartNewTransaction(tableNames);\r
+ commitAndStartNewTransaction(tableNames);\r
\r
- name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
- name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
- name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
- specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
- fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
+ name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
+ name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
+ name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
+ specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
+ fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
\r
- desigs1 = name1.getTypeDesignations();\r
- desigs2 = name2.getTypeDesignations();\r
- desigs3 = name3.getTypeDesignations();\r
+ desigs1 = name1.getTypeDesignations();\r
+ desigs2 = name2.getTypeDesignations();\r
+ desigs3 = name3.getTypeDesignations();\r
\r
- Assert.assertEquals("name1 should have 2 type designations", 2, desigs1.size());\r
- Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
- Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
- Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
- Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("name1 should have 2 type designations", 2, desigs1.size());\r
+ Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
+ Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
+ Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
\r
- nameService.deleteTypeDesignation(name1, null);\r
+ nameService.deleteTypeDesignation(name1, null);\r
\r
- commitAndStartNewTransaction(tableNames);\r
+ commitAndStartNewTransaction(tableNames);\r
\r
- name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
- name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
- name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
- specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
- fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
+ name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
+ name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
+ name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
+ specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
+ fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
\r
- desigs1 = name1.getTypeDesignations();\r
- desigs2 = name2.getTypeDesignations();\r
- desigs3 = name3.getTypeDesignations();\r
+ desigs1 = name1.getTypeDesignations();\r
+ desigs2 = name2.getTypeDesignations();\r
+ desigs3 = name3.getTypeDesignations();\r
\r
- Assert.assertEquals("name1 should have 0 type designations", 0, desigs1.size());\r
- Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
- Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
- Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
- Assert.assertEquals("Fossil should be used in 0 type designation", 0, fossil.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("name1 should have 0 type designations", 0, desigs1.size());\r
+ Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
+ Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
+ Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("Fossil should be used in 0 type designation", 0, fossil.getSpecimenTypeDesignations().size());\r
\r
- SpecimenTypeDesignation desig2 = (SpecimenTypeDesignation)name2.getTypeDesignations().iterator().next();\r
- nameService.deleteTypeDesignation(name2, desig2);\r
-\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
- name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
- name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
- specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
- fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
-\r
- desigs1 = name1.getTypeDesignations();\r
- desigs2 = name2.getTypeDesignations();\r
- desigs3 = name3.getTypeDesignations();\r
-\r
- Assert.assertEquals("name1 should have 0 type designations", 0, desigs1.size());\r
- Assert.assertEquals("name2 should have 0 type designations", 0, desigs2.size());\r
- Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
- Assert.assertEquals("Specimen1 should be used in 0 type designation", 0, specimen1.getSpecimenTypeDesignations().size());\r
- Assert.assertEquals("Fossil should be used in 0 type designation", 0, fossil.getSpecimenTypeDesignations().size());\r
-\r
- NameTypeDesignation desig3 = (NameTypeDesignation)name3.getTypeDesignations().iterator().next();\r
- nameService.deleteTypeDesignation(name3, desig3);\r
-\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
- name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
- name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
- specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
- fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
-\r
- desigs1 = name1.getTypeDesignations();\r
- desigs2 = name2.getTypeDesignations();\r
- desigs3 = name3.getTypeDesignations();\r
-\r
- Assert.assertEquals("name1 should have 0 type designations", 0, desigs1.size());\r
- Assert.assertEquals("name2 should have 0 type designations", 0, desigs2.size());\r
- Assert.assertEquals("name3 should have 0 type designations", 0, desigs3.size());\r
- Assert.assertEquals("Specimen1 should be used in 0 type designation", 0, specimen1.getSpecimenTypeDesignations().size());\r
- Assert.assertEquals("Fossil should be used in 0 type designation", 0, fossil.getSpecimenTypeDesignations().size());\r
-\r
- }\r
-\r
- @Test\r
- @DataSet\r
- public void testDeleteTypeDesignationAllNames() {\r
- final String[] tableNames = new String[]{\r
- "TaxonNameBase","TypeDesignationBase",\r
- "TaxonNameBase_TypeDesignationBase","SpecimenOrObservationBase"};\r
-\r
-\r
- TaxonNameBase name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
- TaxonNameBase name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
- TaxonNameBase name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
- Specimen specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
- Fossil fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
-\r
- Set<TypeDesignationBase> desigs1 = name1.getTypeDesignations();\r
- Set<TypeDesignationBase> desigs2 = name2.getTypeDesignations();\r
- Set<TypeDesignationBase> desigs3 = name3.getTypeDesignations();\r
-\r
- Assert.assertEquals("name1 should have 2 type designations", 2, desigs1.size());\r
- Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
- Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
- Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
- Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
-\r
- SpecimenTypeDesignation desig2 = (SpecimenTypeDesignation)name2.getTypeDesignations().iterator().next();\r
-\r
- nameService.deleteTypeDesignation(null, desig2);\r
-\r
- commitAndStartNewTransaction(tableNames);\r
-\r
- name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
- name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
- name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
- specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
- fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
-\r
- desigs1 = name1.getTypeDesignations();\r
- desigs2 = name2.getTypeDesignations();\r
- desigs3 = name3.getTypeDesignations();\r
-\r
- Assert.assertEquals("name1 should have 1 type designations", 1, desigs1.size());\r
- Assert.assertEquals("name2 should have 0 type designations", 0, desigs2.size());\r
- Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
- Assert.assertEquals("Specimen1 should be used in 0 type designation", 0, specimen1.getSpecimenTypeDesignations().size());\r
- Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
-\r
- }\r
-\r
- /**\r
- * @return\r
- */\r
- private Rank getSpeciesRank() {\r
- return (Rank)termService.find(Rank.uuidSpecies);\r
- }\r
-\r
- /**\r
- * @return\r
- */\r
- private Rank getGenusRank() {\r
- return (Rank)termService.find(Rank.uuidGenus);\r
- }\r
+ SpecimenTypeDesignation desig2 = (SpecimenTypeDesignation)name2.getTypeDesignations().iterator().next();\r
+ nameService.deleteTypeDesignation(name2, desig2);\r
+\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
+ name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
+ name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
+ specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
+ fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
+\r
+ desigs1 = name1.getTypeDesignations();\r
+ desigs2 = name2.getTypeDesignations();\r
+ desigs3 = name3.getTypeDesignations();\r
+\r
+ Assert.assertEquals("name1 should have 0 type designations", 0, desigs1.size());\r
+ Assert.assertEquals("name2 should have 0 type designations", 0, desigs2.size());\r
+ Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
+ Assert.assertEquals("Specimen1 should be used in 0 type designation", 0, specimen1.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("Fossil should be used in 0 type designation", 0, fossil.getSpecimenTypeDesignations().size());\r
+\r
+ NameTypeDesignation desig3 = (NameTypeDesignation)name3.getTypeDesignations().iterator().next();\r
+ nameService.deleteTypeDesignation(name3, desig3);\r
+\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
+ name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
+ name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
+ specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
+ fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
+\r
+ desigs1 = name1.getTypeDesignations();\r
+ desigs2 = name2.getTypeDesignations();\r
+ desigs3 = name3.getTypeDesignations();\r
+\r
+ Assert.assertEquals("name1 should have 0 type designations", 0, desigs1.size());\r
+ Assert.assertEquals("name2 should have 0 type designations", 0, desigs2.size());\r
+ Assert.assertEquals("name3 should have 0 type designations", 0, desigs3.size());\r
+ Assert.assertEquals("Specimen1 should be used in 0 type designation", 0, specimen1.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("Fossil should be used in 0 type designation", 0, fossil.getSpecimenTypeDesignations().size());\r
+\r
+ }\r
+\r
+ @Test\r
+ @DataSet\r
+ public void testDeleteTypeDesignationAllNames() {\r
+ final String[] tableNames = new String[]{\r
+ "TaxonNameBase","TypeDesignationBase",\r
+ "TaxonNameBase_TypeDesignationBase","SpecimenOrObservationBase"};\r
+\r
+\r
+ TaxonNameBase name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
+ TaxonNameBase name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
+ TaxonNameBase name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
+ Specimen specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
+ Fossil fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
+\r
+ Set<TypeDesignationBase> desigs1 = name1.getTypeDesignations();\r
+ Set<TypeDesignationBase> desigs2 = name2.getTypeDesignations();\r
+ Set<TypeDesignationBase> desigs3 = name3.getTypeDesignations();\r
+\r
+ Assert.assertEquals("name1 should have 2 type designations", 2, desigs1.size());\r
+ Assert.assertEquals("name2 should have 1 type designations", 1, desigs2.size());\r
+ Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
+ Assert.assertEquals("Specimen1 should be used in 1 type designation", 1, specimen1.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
+\r
+ SpecimenTypeDesignation desig2 = (SpecimenTypeDesignation)name2.getTypeDesignations().iterator().next();\r
+\r
+ nameService.deleteTypeDesignation(null, desig2);\r
+\r
+ commitAndStartNewTransaction(tableNames);\r
+\r
+ name1 = this.nameService.load(UUID.fromString("6dbd41d1-fe13-4d9c-bb58-31f051c2c384"));\r
+ name2 = this.nameService.load(UUID.fromString("f9e9c13f-5fa5-48d3-88cf-712c921a099e"));\r
+ name3 = this.nameService.load(UUID.fromString("e1e66264-f16a-4df9-80fd-6ab5028a3c28"));\r
+ specimen1 = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("0d19a9ca-21a7-4adb-8640-8d6719e15eea")),Specimen.class);\r
+ fossil = CdmBase.deproxy(this.occurrenceService.load(UUID.fromString("4c48b7c8-4c8d-4e48-b083-0837fe51a0a9")),Fossil.class);\r
+\r
+ desigs1 = name1.getTypeDesignations();\r
+ desigs2 = name2.getTypeDesignations();\r
+ desigs3 = name3.getTypeDesignations();\r
+\r
+ Assert.assertEquals("name1 should have 1 type designations", 1, desigs1.size());\r
+ Assert.assertEquals("name2 should have 0 type designations", 0, desigs2.size());\r
+ Assert.assertEquals("name3 should have 1 type designations", 1, desigs3.size());\r
+ Assert.assertEquals("Specimen1 should be used in 0 type designation", 0, specimen1.getSpecimenTypeDesignations().size());\r
+ Assert.assertEquals("Fossil should be used in 1 type designation", 1, fossil.getSpecimenTypeDesignations().size());\r
+\r
+ }\r
+\r
+ /**\r
+ * @return\r
+ */\r
+ private Rank getSpeciesRank() {\r
+ return (Rank)termService.find(Rank.uuidSpecies);\r
+ }\r
+\r
+ /**\r
+ * @return\r
+ */\r
+ private Rank getGenusRank() {\r
+ return (Rank)termService.find(Rank.uuidGenus);\r
+ }\r
\r
\r
}\r