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
;
14 import java
.io
.FileNotFoundException
;
15 import java
.io
.FileOutputStream
;
16 import java
.util
.ArrayList
;
17 import java
.util
.Arrays
;
18 import java
.util
.Collections
;
19 import java
.util
.Comparator
;
20 import java
.util
.List
;
21 import java
.util
.UUID
;
23 import junit
.framework
.Assert
;
25 import org
.apache
.log4j
.Level
;
26 import org
.apache
.log4j
.Logger
;
27 import org
.junit
.Ignore
;
28 import org
.junit
.Test
;
29 import org
.springframework
.beans
.factory
.annotation
.Autowired
;
30 import org
.unitils
.dbunit
.annotation
.DataSet
;
31 import org
.unitils
.spring
.annotation
.SpringBeanByType
;
33 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
34 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
35 import eu
.etaxonomy
.cdm
.model
.taxon
.ITaxonNodeComparator
;
36 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
37 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNodeByNameComparator
;
38 import eu
.etaxonomy
.cdm
.test
.integration
.CdmIntegrationTest
;
40 import eu
.etaxonomy
.cdm
.model
.name
.NonViralName
;
44 * @created Sep 22, 2009
47 public class ClassificationServiceImplTest
extends CdmIntegrationTest
{
48 @SuppressWarnings("unused")
49 private static final Logger logger
= Logger
.getLogger(ClassificationServiceImplTest
.class);
52 IClassificationService service
;
55 ITaxonNodeService taxonNodeService
;
56 private static final List
<String
> NODE_INIT_STRATEGY
= Arrays
.asList(new String
[]{
59 "childNodes.taxon.name",
64 private Comparator
<?
super TaxonNode
> taxonNodeComparator
;
68 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#setTaxonNodeComparator(eu.etaxonomy.cdm.model.taxon.ITaxonNodeComparator)}.
71 public final void testSetTaxonNodeComparator() {
74 // fail("Not yet implemented");
78 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTaxonNodeByTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.UUID, java.util.List)}.
81 public final void testLoadTaxonNodeByTaxon() {
82 // fail("Not yet implemented");
86 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)}.
89 public final void testLoadTaxonNode() {
90 // fail("Not yet implemented");
96 public final void testTaxonNodeByNameComparator() {
97 taxonNodeComparator
= new TaxonNodeByNameComparator();
98 Classification classification
= service
.find(UUID
.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878"));
101 // printDataSet(new FileOutputStream(new File("testTaxonNodeByNameComparator-dump.xml")), new String[] {"DefinedTermBase"});
102 // } catch (FileNotFoundException e) {
106 //List<TaxonNode> taxonNodes = service.loadRankSpecificRootNodes(classification, Rank.GENUS(), NODE_INIT_STRATEGY);
108 List
<TaxonNode
> taxonNodes
= service
.getAllNodes();
109 for (TaxonNode node
: taxonNodes
){
110 taxonNodeService
.load(node
.getUuid(), NODE_INIT_STRATEGY
);
112 TaxonNode nodeGenus
= taxonNodeService
.find(UUID
.fromString("19a4fce2-8be5-4ec7-a6a7-f3974047ba5f"));
113 int index
= taxonNodes
.indexOf(nodeGenus
);
114 taxonNodes
.remove(index
);
115 Collections
.sort(taxonNodes
, taxonNodeComparator
);
119 * Acacia subg. Aculeiferum Pedley
120 * Acacia sect. Botrycephalae Yuji Sasaki
121 * Acacia subg. Phyllodineae N.Jacobsen, Bastm. & Yuji Sasaki
122 * Acacia cuspidifolia Maslin
123 * Acacia mearnsii Benth
126 logger
.setLevel(Level
.DEBUG
);
127 if(logger
.isDebugEnabled()){
128 logger
.debug("-------------");
129 for (TaxonNode node
: taxonNodes
){
130 logger
.debug(node
.getTaxon().getName().getTitleCache() );
131 /*for (TaxonNode child : node.getChildNodes()){
132 logger.debug(child.getTaxon().getName().getTitleCache());
137 Assert
.assertEquals("Acacia subg. Aculeiferum Pedley", taxonNodes
.get(0).getTaxon().getName().getTitleCache());
140 ((TaxonNodeByNameComparator)taxonNodeComparator).setSortInfraGenericFirst(false);
141 Collections.sort(taxonNodes, taxonNodeComparator);
143 Assert.assertEquals("Acacia cuspidifolia Maslin", taxonNodes.get(0).getTaxon().getName().getTitleCache());
144 System.err.println();
145 for (TaxonNode node: taxonNodes){
146 System.err.println(node.getTaxon().getName().getTitleCache() );
147 /*for (TaxonNode child : node.getChildNodes()){
148 System.err.println(child.getTaxon().getName().getTitleCache());
151 // fail("Not yet implemented");
157 * 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)}.
162 public final void testloadRankSpecificRootNodes(){
163 Classification classification
= service
.find(UUID
.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878"));
165 List
<TaxonNode
> taxonNodes
= service
.loadRankSpecificRootNodes(classification
, Rank
.SECTION_BOTANY(), NODE_INIT_STRATEGY
);
166 Assert
.assertEquals(2, taxonNodes
.size());
171 * 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)}.
174 public final void testLoadTreeBranch() {
175 // fail("Not yet implemented");
179 * 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)}.
182 public final void testLoadTreeBranchToTaxon() {
183 // fail("Not yet implemented");
187 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadChildNodesOfTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)}.
190 public final void testLoadChildNodesOfTaxonNode() {
191 // fail("Not yet implemented");
195 * 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)}.
198 public final void testLoadChildNodesOfTaxon() {
199 // fail("Not yet implemented");
203 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTaxonNodeByUuid(java.util.UUID)}.
206 public final void testGetTaxonNodeByUuid() {
207 // fail("Not yet implemented");
211 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTreeNodeByUuid(java.util.UUID)}.
214 public final void testGetTreeNodeByUuid() {
215 // fail("Not yet implemented");
219 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#listClassifications(java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)}.
222 public final void testListClassifications() {
223 // fail("Not yet implemented");
227 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getClassificationByUuid(java.util.UUID)}.
230 public final void testGetClassificationByUuid() {
231 // fail("Not yet implemented");
235 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#removeTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)}.
238 public final void testRemoveTaxonNode() {
239 // fail("Not yet implemented");
243 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#removeTreeNode(eu.etaxonomy.cdm.model.taxon.ITreeNode)}.
246 public final void testRemoveTreeNode() {
247 // fail("Not yet implemented");
251 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)}.
254 public final void testSaveTaxonNode() {
255 // fail("Not yet implemented");
259 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTaxonNodeAll(java.util.Collection)}.
262 public final void testSaveTaxonNodeAll() {
263 // fail("Not yet implemented");
267 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTreeNode(eu.etaxonomy.cdm.model.taxon.ITreeNode)}.
270 public final void testSaveTreeNode() {
271 // fail("Not yet implemented");
275 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(eu.etaxonomy.cdm.model.taxon.Classification)}.
278 public final void testGetTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification() {
279 // fail("Not yet implemented");
283 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getUuidAndTitleCache()}.
286 public final void testGetUuidAndTitleCache() {
287 // fail("Not yet implemented");
291 * 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[])}.
294 public final void testGetAllMediaForChildNodesTaxonNodeListOfStringIntIntIntStringArray() {
295 // fail("Not yet implemented");
299 * 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[])}.
302 public final void testGetAllMediaForChildNodesTaxonClassificationListOfStringIntIntIntStringArray() {
303 // fail("Not yet implemented");
307 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#setDao(eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao)}.
310 public final void testSetDaoIClassificationDao() {
311 Assert
.assertNotNull(service
);
315 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#generateTitleCache()}.
318 public final void testGenerateTitleCache() {
319 // fail("Not yet implemented");