Project

General

Profile

Download (6.1 KB) Statistics
| Branch: | Tag: | Revision:
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.FileNotFoundException;
14
import java.util.UUID;
15

    
16
import org.junit.Assert;
17
import org.junit.Before;
18
import org.junit.Test;
19
import org.unitils.dbunit.annotation.DataSet;
20
import org.unitils.spring.annotation.SpringApplicationContext;
21
import org.unitils.spring.annotation.SpringBeanByType;
22

    
23
import eu.etaxonomy.cdm.model.common.ITreeNode;
24
import eu.etaxonomy.cdm.model.description.Feature;
25
import eu.etaxonomy.cdm.model.description.FeatureNode;
26
import eu.etaxonomy.cdm.model.description.FeatureTree;
27
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
28

    
29
/**
30
 * @author a.mueller
31
 * @created 2013-09-28
32
 */
33
//@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/applicationContext-test.xml")
34
public class FeatureNodeServiceImplTest extends CdmTransactionalIntegrationTest{
35

    
36
	private static final String sep = ITreeNode.separator;
37
	private static final String pref = ITreeNode.treePrefix;
38
	
39
	@SpringBeanByType
40
	private IFeatureNodeService featureNodeService;
41

    
42
	@SpringBeanByType
43
	private IFeatureTreeService featureTreeService;
44
	
45
	@SpringBeanByType
46
	private ITermService termService;
47
	
48

    
49
//	private static final UUID t2Uuid = UUID.fromString("55c3e41a-c629-40e6-aa6a-ff274ac6ddb1");
50
//	private static final UUID t3Uuid = UUID.fromString("2659a7e0-ff35-4ee4-8493-b453756ab955");
51
	private static final UUID featureTreeUuid = UUID.fromString("6c2bc8d9-ee62-4222-be89-4a8e31770878");
52
	private static final UUID featureTree2Uuid = UUID.fromString("43d67247-936f-42a3-a739-bbcde372e334");
53
	private static final UUID node2Uuid= UUID.fromString("484a1a77-689c-44be-8e65-347d835f47e8");
54
	private static final UUID node3Uuid = UUID.fromString("2d41f0c2-b785-4f73-a436-cc2d5e93cc5b");
55
//	private static final UUID node4Uuid = UUID.fromString("fdaec4bd-c78e-44df-ae87-28f18110968c");
56
	private static final UUID node5Uuid = UUID.fromString("c4d5170a-7967-4dac-ab76-ae2019eefde5");
57
	private static final UUID node6Uuid = UUID.fromString("b419ba5e-9c8b-449c-ad86-7abfca9a7340");
58

    
59
	private Feature t1;
60
	private Feature t2;
61
//	private Synonym s1;
62
	private FeatureNode node3;
63
	private FeatureNode node2;
64

    
65
	/**
66
	 * @throws java.lang.Exception
67
	 */
68
	@Before
69
	public void setUp() throws Exception {
70
	}
71

    
72
	@Test
73
	public final void testIndexCreatRoot() {
74
		FeatureTree featureTree = FeatureTree.NewInstance();
75
		featureTreeService.save(featureTree);
76
		
77
		Feature feature = (Feature)termService.find(914);
78
		FeatureNode newNode = FeatureNode.NewInstance(feature);
79
		featureTree.getRoot().addChild(newNode);
80

    
81
		featureTreeService.save(featureTree);
82

    
83
		featureNodeService.saveOrUpdate(newNode);
84
		
85
		commitAndStartNewTransaction(new String[]{"FeatureNode"});
86
		newNode = featureNodeService.load(newNode.getUuid());
87
		Assert.assertEquals("", sep + pref+featureTree.getId()+sep + featureTree.getRoot().getId()+ sep  + newNode.getId() + sep, newNode.treeIndex());
88
	}
89

    
90
	
91
	@Test
92
	@DataSet(value="FeatureNodeServiceImplTest-indexing.xml")
93
	public final void testIndexCreateNode() {
94
		Feature feature = (Feature)termService.find(914);
95
		
96
		node2 = featureNodeService.load(node2Uuid);
97
		String oldTreeIndex = node2.treeIndex();
98
		
99
		FeatureNode newNode = FeatureNode.NewInstance(feature);
100
		node2.addChild(newNode);
101
		featureNodeService.saveOrUpdate(node2);
102
		
103
		commitAndStartNewTransaction(new String[]{"FeatureNode"});
104
		newNode = featureNodeService.load(newNode.getUuid());
105
		Assert.assertEquals("", oldTreeIndex + newNode.getId() + sep, newNode.treeIndex());
106
	}
107

    
108
	
109
	@Test
110
	@DataSet(value="FeatureNodeServiceImplTest-indexing.xml")
111
	public final void testIndexMoveNode() {
112
		//in feature tree
113
		FeatureTree featureTree = featureTreeService.load(featureTreeUuid);
114
		node2 = featureNodeService.load(node2Uuid);
115
		node3 = featureNodeService.load(node3Uuid);
116
		node3.addChild(node2);
117
		featureNodeService.saveOrUpdate(node2);
118
		commitAndStartNewTransaction(new String[]{"FeatureNode"});
119
		FeatureNode node6 = featureNodeService.load(node6Uuid);
120
		Assert.assertEquals("Node6 treeindex is not correct", node3.treeIndex() + "2#4#6#", node6.treeIndex());
121

    
122
		//root of new feature tree
123
		FeatureTree featureTree2 = featureTreeService.load(featureTree2Uuid);
124
		node2 = featureNodeService.load(node2Uuid);
125
		featureTree2.getRoot().addChild(node2);
126
		featureNodeService.saveOrUpdate(node2);
127
		commitAndStartNewTransaction(new String[]{"TaxonNode"});
128
		node2 = featureNodeService.load(node2Uuid);
129
		Assert.assertEquals("Node2 treeindex is not correct", "#t2#7#2#", node2.treeIndex());
130
		node6 = featureNodeService.load(node6Uuid);
131
		Assert.assertEquals("Node6 treeindex is not correct", "#t2#7#2#4#6#", node6.treeIndex());
132

    
133
		//into new classification
134
		node3 = featureNodeService.load(node3Uuid);
135
		FeatureNode node5 = featureNodeService.load(node5Uuid);
136
		node5.addChild(node3);
137
		featureNodeService.saveOrUpdate(node5);
138
		commitAndStartNewTransaction(new String[]{"TaxonNode"});
139
		node3 = featureNodeService.load(node3Uuid);
140
		Assert.assertEquals("Node3 treeindex is not correct", "#t2#7#2#5#3#", node3.treeIndex());
141

    
142
	}
143

    
144
	@Test  //here we may have a test for testing delete of a node and attaching the children
145
	//to its parents, however this depends on the way delete is implemented and therefore needs
146
	//to wait until this is finally done
147
	public final void testIndexDeleteNode() {
148
//		node2 = taxonNodeService.load(node2Uuid);
149
//		node2.getParent().deleteChildNode(node2);
150
//		
151
//		node5.addChildNode(node3, null, null);
152
//		taxonNodeService.saveOrUpdate(node5);
153
//		commitAndStartNewTransaction(new String[]{"TaxonNode"});
154
//		node3 = taxonNodeService.load(node3Uuid);
155
//		Assert.assertEquals("Node3 treeindex is not correct", "#t2#2#5#3#", node3.getTreeIndex());
156
	}
157

    
158
    /* (non-Javadoc)
159
     * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()
160
     */
161
    @Override
162
    public void createTestDataSet() throws FileNotFoundException {
163
        // TODO Auto-generated method stub
164
        
165
    }
166
	
167
	
168
	
169
	
170

    
171
}
(5-5/27)