3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.cdm
.api
.service
;
13 import java
.io
.FileNotFoundException
;
14 import java
.util
.Arrays
;
15 import java
.util
.Collections
;
16 import java
.util
.Comparator
;
17 import java
.util
.List
;
18 import java
.util
.UUID
;
20 import org
.apache
.log4j
.Level
;
21 import org
.apache
.log4j
.Logger
;
22 import org
.junit
.Assert
;
23 import org
.junit
.Ignore
;
24 import org
.junit
.Test
;
25 import org
.unitils
.dbunit
.annotation
.DataSet
;
26 import org
.unitils
.spring
.annotation
.SpringBeanByType
;
28 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
29 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
30 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
31 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNodeByNameComparator
;
32 import eu
.etaxonomy
.cdm
.test
.integration
.CdmIntegrationTest
;
36 * @created Sep 22, 2009
39 public class ClassificationServiceImplTest
extends CdmIntegrationTest
{
41 private static final Logger logger
= Logger
.getLogger(ClassificationServiceImplTest
.class);
44 IClassificationService service
;
47 ITaxonNodeService taxonNodeService
;
48 private static final List
<String
> NODE_INIT_STRATEGY
= Arrays
.asList(new String
[]{
51 "childNodes.taxon.name",
56 private Comparator
<?
super TaxonNode
> taxonNodeComparator
;
60 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#setTaxonNodeComparator(eu.etaxonomy.cdm.model.taxon.ITaxonNodeComparator)}.
63 public final void testSetTaxonNodeComparator() {
66 // fail("Not yet implemented");
70 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTaxonNodeByTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.UUID, java.util.List)}.
73 public final void testLoadTaxonNodeByTaxon() {
74 // fail("Not yet implemented");
78 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)}.
81 public final void testLoadTaxonNode() {
82 // fail("Not yet implemented");
88 public final void testTaxonNodeByNameComparator() {
89 taxonNodeComparator
= new TaxonNodeByNameComparator();
90 Classification classification
= service
.find(UUID
.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878"));
93 // printDataSet(new FileOutputStream(new File("testTaxonNodeByNameComparator-dump.xml")), new String[] {"DefinedTermBase"});
94 // } catch (FileNotFoundException e) {
98 //List<TaxonNode> taxonNodes = service.loadRankSpecificRootNodes(classification, Rank.GENUS(), NODE_INIT_STRATEGY);
100 List
<TaxonNode
> taxonNodes
= service
.getAllNodes();
101 for (TaxonNode node
: taxonNodes
){
102 taxonNodeService
.load(node
.getUuid(), NODE_INIT_STRATEGY
);
104 TaxonNode nodeGenus
= taxonNodeService
.find(UUID
.fromString("19a4fce2-8be5-4ec7-a6a7-f3974047ba5f"));
105 int index
= taxonNodes
.indexOf(nodeGenus
);
106 taxonNodes
.remove(index
);
107 Collections
.sort(taxonNodes
, taxonNodeComparator
);
111 * Acacia subg. Aculeiferum Pedley
112 * Acacia sect. Botrycephalae Yuji Sasaki
113 * Acacia subg. Phyllodineae N.Jacobsen, Bastm. & Yuji Sasaki
114 * Acacia cuspidifolia Maslin
115 * Acacia mearnsii Benth
118 logger
.setLevel(Level
.DEBUG
);
119 if(logger
.isDebugEnabled()){
120 logger
.debug("-------------");
121 for (TaxonNode node
: taxonNodes
){
122 if (node
!= null && node
.getTaxon() != null && node
.getTaxon().getName()!= null){
123 logger
.debug(node
.getTaxon().getName().getTitleCache() );
125 /*for (TaxonNode child : node.getChildNodes()){
126 logger.debug(child.getTaxon().getName().getTitleCache());
131 Assert
.assertEquals("Acacia subg. Aculeiferum Pedley", taxonNodes
.get(1).getTaxon().getName().getTitleCache());
134 ((TaxonNodeByNameComparator)taxonNodeComparator).setSortInfraGenericFirst(false);
135 Collections.sort(taxonNodes, taxonNodeComparator);
137 Assert.assertEquals("Acacia cuspidifolia Maslin", taxonNodes.get(0).getTaxon().getName().getTitleCache());
138 System.err.println();
139 for (TaxonNode node: taxonNodes){
140 System.err.println(node.getTaxon().getName().getTitleCache() );
141 /*for (TaxonNode child : node.getChildNodes()){
142 System.err.println(child.getTaxon().getName().getTitleCache());
145 // fail("Not yet implemented");
151 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadRankSpecificRootNodes(eu.etaxonomy.cdm.model.taxon.Classification, eu.etaxonomy.cdm.model.name.Rank, java.util.List)}.
155 public final void testlistRankSpecificRootNodes(){
156 Classification classification
= service
.find(UUID
.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878"));
158 List
<TaxonNode
> taxonNodes
= service
.listRankSpecificRootNodes(null, null, null, null, NODE_INIT_STRATEGY
);
159 Assert
.assertEquals(1, taxonNodes
.size());
161 taxonNodes
= service
.listRankSpecificRootNodes(classification
, null, null, null, NODE_INIT_STRATEGY
);
162 Assert
.assertEquals(1, taxonNodes
.size());
164 taxonNodes
= service
.listRankSpecificRootNodes(classification
, Rank
.SECTION_BOTANY(), null, null, NODE_INIT_STRATEGY
);
165 Assert
.assertEquals(2, taxonNodes
.size());
170 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTreeBranch(eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.model.name.Rank, java.util.List)}.
173 public final void testLoadTreeBranch() {
174 // fail("Not yet implemented");
178 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTreeBranchToTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, eu.etaxonomy.cdm.model.name.Rank, java.util.List)}.
181 public final void testLoadTreeBranchToTaxon() {
182 // fail("Not yet implemented");
186 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadChildNodesOfTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)}.
189 public final void testLoadChildNodesOfTaxonNode() {
190 // fail("Not yet implemented");
194 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadChildNodesOfTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List)}.
197 public final void testLoadChildNodesOfTaxon() {
198 // fail("Not yet implemented");
202 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTaxonNodeByUuid(java.util.UUID)}.
205 public final void testGetTaxonNodeByUuid() {
206 // fail("Not yet implemented");
210 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTreeNodeByUuid(java.util.UUID)}.
213 public final void testGetTreeNodeByUuid() {
214 // fail("Not yet implemented");
218 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#listClassifications(java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)}.
221 public final void testListClassifications() {
222 // fail("Not yet implemented");
226 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getClassificationByUuid(java.util.UUID)}.
229 public final void testGetClassificationByUuid() {
230 // fail("Not yet implemented");
234 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#removeTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)}.
237 public final void testRemoveTaxonNode() {
238 // fail("Not yet implemented");
242 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#removeTreeNode(eu.etaxonomy.cdm.model.taxon.ITreeNode)}.
245 public final void testRemoveTreeNode() {
246 // fail("Not yet implemented");
250 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)}.
253 public final void testSaveTaxonNode() {
254 // fail("Not yet implemented");
258 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTaxonNodeAll(java.util.Collection)}.
261 public final void testSaveTaxonNodeAll() {
262 // fail("Not yet implemented");
266 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTreeNode(eu.etaxonomy.cdm.model.taxon.ITreeNode)}.
269 public final void testSaveTreeNode() {
270 // fail("Not yet implemented");
274 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(eu.etaxonomy.cdm.model.taxon.Classification)}.
277 public final void testGetTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification() {
278 // fail("Not yet implemented");
282 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getUuidAndTitleCache()}.
285 public final void testGetUuidAndTitleCache() {
286 // fail("Not yet implemented");
290 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getAllMediaForChildNodes(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List, int, int, int, java.lang.String[])}.
293 public final void testGetAllMediaForChildNodesTaxonNodeListOfStringIntIntIntStringArray() {
294 // fail("Not yet implemented");
298 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getAllMediaForChildNodes(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, int, int, int, java.lang.String[])}.
301 public final void testGetAllMediaForChildNodesTaxonClassificationListOfStringIntIntIntStringArray() {
302 // fail("Not yet implemented");
306 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#setDao(eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao)}.
309 public final void testSetDaoIClassificationDao() {
310 Assert
.assertNotNull(service
);
314 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#generateTitleCache()}.
317 public final void testGenerateTitleCache() {
318 // fail("Not yet implemented");
322 * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()
325 public void createTestDataSet() throws FileNotFoundException
{
326 // TODO Auto-generated method stub