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