Mercurial > hg > Members > shoshi > TreeCMSv2
comparison src/treecms/test/TreeTest.java @ 5:87bba22e4fa2
added test case
author | shoshi |
---|---|
date | Tue, 01 Mar 2011 01:29:59 +0900 |
parents | |
children | 12604eb6b615 |
comparison
equal
deleted
inserted
replaced
4:f5ed85be5640 | 5:87bba22e4fa2 |
---|---|
1 package treecms.test; | |
2 | |
3 import java.util.LinkedList; | |
4 | |
5 import junit.framework.Assert; | |
6 | |
7 import org.junit.Test; | |
8 | |
9 import treecms.api.Node; | |
10 import treecms.api.NodeData; | |
11 import treecms.api.Tree; | |
12 | |
13 public class TreeTest | |
14 { | |
15 Tree m_tree; | |
16 | |
17 public TreeTest(Tree _tree) | |
18 { | |
19 m_tree = _tree; | |
20 } | |
21 | |
22 @Test | |
23 public void testUpdateTree() | |
24 { | |
25 /** | |
26 * Root | |
27 * + 1 | |
28 * + + 1-1 <- update this. | |
29 * + | |
30 * + 2 | |
31 * + 2-1 | |
32 */ | |
33 | |
34 Node ch1 = m_tree.getForest().create(); | |
35 Node ch2 = m_tree.getForest().create(); | |
36 | |
37 Node ch11 = m_tree.getForest().create(); | |
38 Node ch12 = m_tree.getForest().create(); | |
39 | |
40 LinkedList<Node> list = new LinkedList<Node>(); | |
41 list.add(ch1); | |
42 list.add(ch2); | |
43 | |
44 m_tree.getRoot().getData().add(list); | |
45 | |
46 LinkedList<Node> ch1list = new LinkedList<Node>(); | |
47 ch1list.add(ch11); | |
48 ch1.getData().add(ch1list); | |
49 | |
50 LinkedList<Node> ch2list = new LinkedList<Node>(); | |
51 ch2list.add(ch12); | |
52 ch2.getData().add(ch2list); | |
53 | |
54 LinkedList<Node> before = findPath(m_tree.getRoot(),ch11); | |
55 NodeData newData = ch11.getData().deepCopy(); | |
56 m_tree.updateTree(ch11,newData); | |
57 LinkedList<Node> after = findPath(m_tree.getRoot(),ch11); | |
58 | |
59 for(int i = 0;i < before.size();i ++){ | |
60 boolean result = before.get(i).getID().isFamily(after.get(i).getID()); | |
61 Assert.assertEquals(true,result); | |
62 } | |
63 } | |
64 | |
65 public LinkedList<Node> findPath(Node _from,Node _target) | |
66 { | |
67 if(_from.getID().isFamily(_target.getID())){ | |
68 LinkedList<Node> path = new LinkedList<Node>(); | |
69 path.add(_from); | |
70 return path; | |
71 } | |
72 | |
73 for(Node child : _from.getData().list()){ | |
74 LinkedList<Node> path = findPath(child,_target); | |
75 if(path != null){ | |
76 path.add(_from); | |
77 } | |
78 } | |
79 | |
80 return null; | |
81 } | |
82 } |