removing BlankDataSet.xml - will fix tests in jenkins with mvn3 ?
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Tue, 3 Jul 2012 08:57:47 +0000 (08:57 +0000)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Tue, 3 Jul 2012 08:57:47 +0000 (08:57 +0000)
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/NameServiceImplTest.java

index 6838ba54466e24912579e0e20b2e12d1bc51e33f..3d1424f740b9e21eb1baeb5ce3c49f128449de1f 100644 (file)
@@ -58,684 +58,684 @@ import eu.etaxonomy.cdm.test.unitils.CleanSweepInsertLoadStrategy;
  *\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
@@ -779,167 +779,167 @@ public class NameServiceImplTest extends CdmTransactionalIntegrationTest {
 //\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