5
|
1 package treecms.test;
|
|
2
|
|
3
|
|
4 import junit.framework.Assert;
|
|
5 import org.junit.Test;
|
|
6 import treecms.api.Tree;
|
|
7
|
9
|
8 /**
|
|
9 * Tree実装の基本的なテスト
|
|
10 * @author shoshi
|
|
11 */
|
|
12 public abstract class AbstractTreeTest extends AbstractNodeTest
|
5
|
13 {
|
9
|
14 /**
|
|
15 * インスタンスください
|
|
16 * @return Tree
|
|
17 */
|
|
18 public abstract Tree getInstance();
|
5
|
19
|
9
|
20 /**
|
|
21 * 木のRootNodeが取得できるか確認する
|
|
22 */
|
|
23 @Test
|
|
24 public void testGetRoot()
|
5
|
25 {
|
9
|
26 Tree tree = getInstance();
|
|
27 Assert.assertNotNull(tree.getRoot());
|
5
|
28 }
|
|
29
|
9
|
30 /*
|
5
|
31 @Test
|
|
32 public void testUpdateTree()
|
|
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
|
9
|
73 for(Node child : _from.children()){
|
5
|
74 LinkedList<Node> path = findPath(child,_target);
|
|
75 if(path != null){
|
|
76 path.add(_from);
|
|
77 }
|
|
78 }
|
|
79
|
|
80 return null;
|
|
81 }
|
9
|
82 */
|
5
|
83 }
|