X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/b406202b8f371678186b78aa32a0c7a8b8f63880..cd26eb20fa0fb60fb47965ea3857477e5f61a7e2:/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TermServiceImplTest.java diff --git a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TermServiceImplTest.java b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TermServiceImplTest.java index 253a6a1ee5..7b11b731f9 100644 --- a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TermServiceImplTest.java +++ b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TermServiceImplTest.java @@ -12,24 +12,34 @@ package eu.etaxonomy.cdm.api.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import java.io.FileNotFoundException; import java.net.URI; +import java.util.Set; import java.util.UUID; import org.apache.log4j.Logger; import org.junit.Ignore; import org.junit.Test; +import org.unitils.dbunit.annotation.DataSet; +import org.unitils.dbunit.annotation.DataSets; import org.unitils.spring.annotation.SpringBeanByType; import eu.etaxonomy.cdm.api.service.pager.Pager; +import eu.etaxonomy.cdm.model.common.DefinedTerm; import eu.etaxonomy.cdm.model.common.DefinedTermBase; import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.common.Representation; +import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.common.TermVocabulary; import eu.etaxonomy.cdm.model.location.NamedArea; +import eu.etaxonomy.cdm.model.name.BotanicalName; import eu.etaxonomy.cdm.model.name.Rank; import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus; +import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest; +import eu.etaxonomy.cdm.test.unitils.CleanSweepInsertLoadStrategy; /** * @author a.mueller @@ -46,6 +56,9 @@ public class TermServiceImplTest extends CdmTransactionalIntegrationTest{ @SpringBeanByType private IVocabularyService vocabularyService; + @SpringBeanByType + private ITaxonService taxonService; + /* ************************* TESTS *************************************************/ /** @@ -80,7 +93,7 @@ public class TermServiceImplTest extends CdmTransactionalIntegrationTest{ } /** - * Test method for {@link eu.etaxonomy.cdm.api.service.TermServiceImpl#getTermByUuid(java.util.UUID)}. + * Test method for {@link eu.etaxonomy.cdm.api.service.TermServiceImpl#getContinentByUuid(java.util.UUID)}. */ @Test /* @DataSet @@ -147,21 +160,21 @@ public class TermServiceImplTest extends CdmTransactionalIntegrationTest{ * and thus will cause unitils empty the according tables */ public void testListTerms() { - Pager results = (Pager)termService.page(SpecimenTypeDesignationStatus.class, null,null,null,null); + Pager results = termService.page(SpecimenTypeDesignationStatus.class, null,null,null,null); assertNotNull("Results should not be null",results); } - + @Ignore @Test public void testTitleCacheUpdate(){ String uuid = "ae787603-3070-4298-9ca6-4cbe73378122"; UUID fromString = UUID.fromString(uuid); DefinedTermBase termBase = termService.find(fromString); - + // change label String expectedTitleCache = termBase.getLabel() + "append"; termBase.setLabel(expectedTitleCache); - + commitAndStartNewTransaction(null); termBase = termService.find(fromString); @@ -172,15 +185,78 @@ public class TermServiceImplTest extends CdmTransactionalIntegrationTest{ Representation representation = termBase.getRepresentation(Language.DEFAULT()); representation.setLabel(expecteTitleCacheAfterRepresentationChange); termBase.addRepresentation(representation); - + //this will create another termBase in the DB which has the same UUID -> test failure // termBase.addRepresentation(Representation.NewInstance(expecteTitleCacheAfterRepresentationChange, "", "", Language.DEFAULT()));////new Representation(expecteTitleCacheAfterRepresentationChange, "", "", Language.DEFAULT())); - + commitAndStartNewTransaction(null); - + termBase = termService.find(fromString); assertEquals("Title cache did not update after adding a new representation for default language and saving the term", expecteTitleCacheAfterRepresentationChange, termBase.getTitleCache()); } - + + + @Test + @DataSets({ + @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="ClearDB_with_Terms_DataSet.xml"), + @DataSet(value="TermsDataSet-with_auditing_info.xml") + }) + public void testDeleteTerms(){ + final String[] tableNames = new String[]{ + "DefinedTermBase","Representation"}; + + commitAndStartNewTransaction(tableNames); + TermVocabulary vocs = TermVocabulary.NewInstance(TermType.Feature, "TestFeatures", null, null, null); + vocs.addTerm(DefinedTerm.NewInstance(TermType.State, "green", "green", "gn")); + vocs= vocabularyService.save(vocs); + Pager term = termService.findByRepresentationText("green", DefinedTermBase.class, null, null); + if (term.getCount() != 0){ + + DeleteResult result = termService.delete(term.getRecords().get(0)); + assertTrue(result.isOk()); + commitAndStartNewTransaction(tableNames); + } + TermVocabulary voc = TermVocabulary.NewInstance(TermType.Feature, "TestFeatures", null, null, null); + voc.addTerm(DefinedTerm.NewDnaMarkerInstance("test", "marker", "t")); + UUID vocUUID = vocabularyService.save(voc).getUuid(); + + voc = vocabularyService.find(vocUUID); + Set terms = voc.getTerms(); + DefinedTermBase termBase =terms.iterator().next(); + UUID termUUID = termBase.getUuid(); + termService.delete(termBase, null); + //commitAndStartNewTransaction(tableNames); + termBase = termService.load(termUUID); + assertNull(termBase); + + + //TermVocabulary voc = TermVocabulary.NewInstance(TermType.Feature, "TestFeatures", null, null, null); + voc.addTerm(DefinedTerm.NewDnaMarkerInstance("test", "marker", "t")); + vocUUID = vocabularyService.save(voc).getUuid(); + + voc = vocabularyService.find(vocUUID); + terms = voc.getTerms(); + termBase =terms.iterator().next(); + termUUID = termBase.getUuid(); + termBase = termService.load(termUUID); + BotanicalName testName = BotanicalName.NewInstance(Rank.SPECIES()); + Taxon testTaxon = Taxon.NewInstance(testName,null); + testTaxon.addIdentifier("Test", (DefinedTerm) termBase); + taxonService.save(testTaxon); + termService.delete(termBase, null); + //commitAndStartNewTransaction(tableNames); + termBase = termService.load(termUUID); + assertNotNull(termBase); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData() + */ + @Override + public void createTestDataSet() throws FileNotFoundException { + // TODO Auto-generated method stub + + } + }