fixing problem with TaxonServiceImplTest which ocurred only on my machine. The test...
[cdmlib.git] / cdmlib-services / src / test / java / eu / etaxonomy / cdm / api / service / ClassificationServiceImplTest.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
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.
9 */
10
11 package eu.etaxonomy.cdm.api.service;
12
13 import java.io.File;
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;
22
23 import junit.framework.Assert;
24
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;
32
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;
39
40 import eu.etaxonomy.cdm.model.name.NonViralName;
41
42 /**
43 * @author n.hoffmann
44 * @created Sep 22, 2009
45 * @version 1.0
46 */
47 public class ClassificationServiceImplTest extends CdmIntegrationTest{
48 @SuppressWarnings("unused")
49 private static final Logger logger = Logger.getLogger(ClassificationServiceImplTest.class);
50
51 @SpringBeanByType
52 IClassificationService service;
53
54 @SpringBeanByType
55 ITaxonNodeService taxonNodeService;
56 private static final List<String> NODE_INIT_STRATEGY = Arrays.asList(new String[]{
57 "childNodes",
58 "childNodes.taxon",
59 "childNodes.taxon.name",
60 "taxon.sec",
61 "taxon.name.*"
62 });
63
64 private Comparator<? super TaxonNode> taxonNodeComparator;
65
66
67 /**
68 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#setTaxonNodeComparator(eu.etaxonomy.cdm.model.taxon.ITaxonNodeComparator)}.
69 */
70 // @Test
71 public final void testSetTaxonNodeComparator() {
72
73
74 // fail("Not yet implemented");
75 }
76
77 /**
78 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTaxonNodeByTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.UUID, java.util.List)}.
79 */
80 // @Test
81 public final void testLoadTaxonNodeByTaxon() {
82 // fail("Not yet implemented");
83 }
84
85 /**
86 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)}.
87 */
88 @Test
89 public final void testLoadTaxonNode() {
90 // fail("Not yet implemented");
91 }
92
93
94 @Test
95 @DataSet
96 public final void testTaxonNodeByNameComparator() {
97 taxonNodeComparator = new TaxonNodeByNameComparator();
98 Classification classification = service.find(UUID.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878"));
99
100 // try {
101 // printDataSet(new FileOutputStream(new File("testTaxonNodeByNameComparator-dump.xml")), new String[] {"DefinedTermBase"});
102 // } catch (FileNotFoundException e) {
103 // /* IGNORE */
104 // }
105
106 //List<TaxonNode> taxonNodes = service.loadRankSpecificRootNodes(classification, Rank.GENUS(), NODE_INIT_STRATEGY);
107
108 List<TaxonNode> taxonNodes = service.getAllNodes();
109 for (TaxonNode node: taxonNodes){
110 taxonNodeService.load(node.getUuid(), NODE_INIT_STRATEGY);
111 }
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);
116
117 /**
118 * expected order is:
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
124 */
125
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());
133 }*/
134 }
135 }
136
137 Assert.assertEquals("Acacia subg. Aculeiferum Pedley", taxonNodes.get(0).getTaxon().getName().getTitleCache());
138
139 /*
140 ((TaxonNodeByNameComparator)taxonNodeComparator).setSortInfraGenericFirst(false);
141 Collections.sort(taxonNodes, taxonNodeComparator);
142
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());
149 }
150 }*/
151 // fail("Not yet implemented");
152
153 }
154
155
156 /**
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)}.
158 */
159 @Test
160 @DataSet
161 @Ignore
162 public final void testloadRankSpecificRootNodes(){
163 Classification classification = service.find(UUID.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878"));
164
165 List<TaxonNode> taxonNodes = service.loadRankSpecificRootNodes(classification, Rank.SECTION_BOTANY(), NODE_INIT_STRATEGY);
166 Assert.assertEquals(2, taxonNodes.size());
167
168 }
169
170 /**
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)}.
172 */
173 // @Test
174 public final void testLoadTreeBranch() {
175 // fail("Not yet implemented");
176 }
177
178 /**
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)}.
180 */
181 // @Test
182 public final void testLoadTreeBranchToTaxon() {
183 // fail("Not yet implemented");
184 }
185
186 /**
187 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#loadChildNodesOfTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode, java.util.List)}.
188 */
189 // @Test
190 public final void testLoadChildNodesOfTaxonNode() {
191 // fail("Not yet implemented");
192 }
193
194 /**
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)}.
196 */
197 // @Test
198 public final void testLoadChildNodesOfTaxon() {
199 // fail("Not yet implemented");
200 }
201
202 /**
203 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTaxonNodeByUuid(java.util.UUID)}.
204 */
205 // @Test
206 public final void testGetTaxonNodeByUuid() {
207 // fail("Not yet implemented");
208 }
209
210 /**
211 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTreeNodeByUuid(java.util.UUID)}.
212 */
213 // @Test
214 public final void testGetTreeNodeByUuid() {
215 // fail("Not yet implemented");
216 }
217
218 /**
219 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#listClassifications(java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)}.
220 */
221 // @Test
222 public final void testListClassifications() {
223 // fail("Not yet implemented");
224 }
225
226 /**
227 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getClassificationByUuid(java.util.UUID)}.
228 */
229 // @Test
230 public final void testGetClassificationByUuid() {
231 // fail("Not yet implemented");
232 }
233
234 /**
235 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#removeTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)}.
236 */
237 // @Test
238 public final void testRemoveTaxonNode() {
239 // fail("Not yet implemented");
240 }
241
242 /**
243 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#removeTreeNode(eu.etaxonomy.cdm.model.taxon.ITreeNode)}.
244 */
245 // @Test
246 public final void testRemoveTreeNode() {
247 // fail("Not yet implemented");
248 }
249
250 /**
251 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTaxonNode(eu.etaxonomy.cdm.model.taxon.TaxonNode)}.
252 */
253 // @Test
254 public final void testSaveTaxonNode() {
255 // fail("Not yet implemented");
256 }
257
258 /**
259 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTaxonNodeAll(java.util.Collection)}.
260 */
261 // @Test
262 public final void testSaveTaxonNodeAll() {
263 // fail("Not yet implemented");
264 }
265
266 /**
267 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#saveTreeNode(eu.etaxonomy.cdm.model.taxon.ITreeNode)}.
268 */
269 // @Test
270 public final void testSaveTreeNode() {
271 // fail("Not yet implemented");
272 }
273
274 /**
275 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(eu.etaxonomy.cdm.model.taxon.Classification)}.
276 */
277 // @Test
278 public final void testGetTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification() {
279 // fail("Not yet implemented");
280 }
281
282 /**
283 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#getUuidAndTitleCache()}.
284 */
285 // @Test
286 public final void testGetUuidAndTitleCache() {
287 // fail("Not yet implemented");
288 }
289
290 /**
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[])}.
292 */
293 // @Test
294 public final void testGetAllMediaForChildNodesTaxonNodeListOfStringIntIntIntStringArray() {
295 // fail("Not yet implemented");
296 }
297
298 /**
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[])}.
300 */
301 // @Test
302 public final void testGetAllMediaForChildNodesTaxonClassificationListOfStringIntIntIntStringArray() {
303 // fail("Not yet implemented");
304 }
305
306 /**
307 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#setDao(eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao)}.
308 */
309 @Test
310 public final void testSetDaoIClassificationDao() {
311 Assert.assertNotNull(service);
312 }
313
314 /**
315 * Test method for {@link eu.etaxonomy.cdm.api.service.ClassificationServiceImpl#generateTitleCache()}.
316 */
317 // @Test
318 public final void testGenerateTitleCache() {
319 // fail("Not yet implemented");
320 }
321 }