- extracted deepDelete tests to own java class
[cdmlib.git] / cdmlib-services / src / test / java / eu / etaxonomy / cdm / api / service / TaxonServiceImplBusinessTest.java
index 229a313c1360d82db83049befa66ad060edfe839..74431a1214b6003fa06769d47f2922db7905a365 100644 (file)
 
 package eu.etaxonomy.cdm.api.service;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.FileNotFoundException;
+import java.util.HashSet;
 import java.util.List;
+import java.util.UUID;
 
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.unitils.spring.annotation.SpringBeanByType;
 
 import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
@@ -26,6 +34,7 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
 
@@ -42,7 +51,11 @@ public class TaxonServiceImplBusinessTest extends CdmIntegrationTest {
        private Synonym s2;
        private Taxon t2;
        private Taxon t1;
+       @SpringBeanByType
        private ITaxonService service;
+
+       @SpringBeanByType
+       private INameService nameService;
        private String referenceDetail;
        private Reference<?> reference;
        private SynonymRelationshipType homoTypicSynonymRelationshipType;
@@ -57,8 +70,9 @@ public class TaxonServiceImplBusinessTest extends CdmIntegrationTest {
         */
        @Before
        public void setUp() throws Exception {
-               service = new TaxonServiceImpl();
-
+               //service = new TaxonServiceImpl();
+               //nameService = new NameServiceImpl();
+               
                t1n = NonViralName.NewInstance(null);
                t1 = Taxon.NewInstance(t1n, reference);
 
@@ -194,7 +208,27 @@ public class TaxonServiceImplBusinessTest extends CdmIntegrationTest {
        @Test
        public final void testChangeSynonymToRelatedTaxon() {
                t1.addSynonym(s1, homoTypicSynonymRelationshipType);
-               service.changeSynonymToRelatedTaxon(s1, t2, TaxonRelationshipType.CONGRUENT_OR_EXCLUDES(), reference, referenceDetail);
+               HashSet newInstances = new HashSet<TaxonBase>();
+               newInstances.add(s1);
+               newInstances.add(t1);
+               newInstances.add(t2);
+               service.save(newInstances);
+               TaxonNameBase synonymName = s1.getName();
+               UUID synNameUUID = synonymName.getUuid();
+                               
+               Taxon newTaxon = service.changeSynonymToRelatedTaxon(s1, t2, TaxonRelationshipType.CONGRUENT_OR_EXCLUDES(), reference, referenceDetail);
+               //check removeTaxonBase()
+               //UUID s1UUID = service.update(s1);
+               UUID newTaxonUUID = service.save(newTaxon);
+       
+               
+               s1 =(Synonym)service.find(s1.getUuid());
+               newTaxon = (Taxon)service.find(newTaxonUUID);
+               assertNull(s1);
+               synonymName = nameService.find(synNameUUID);
+               assertFalse(synonymName.getTaxonBases().contains(s1));
+               assertTrue(synonymName.getTaxonBases().contains(newTaxon));
+               
        }
 //
 //     Moved to TaxonServiceImplTest
@@ -318,4 +352,14 @@ public class TaxonServiceImplBusinessTest extends CdmIntegrationTest {
 
        }
 
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()
+     */
+    @Override
+    public void createTestDataSet() throws FileNotFoundException {
+        // TODO Auto-generated method stub
+        
+    }
+
 }