annotate src/treecms/test/AbstractForestTest.java @ 17:168deb591f21

commit
author shoshi
date Tue, 24 May 2011 00:33:12 +0900
parents bb9760760744
children c1e7ec6b3d44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
12604eb6b615 added javadoc
shoshi
parents:
diff changeset
1 package treecms.test;
12604eb6b615 added javadoc
shoshi
parents:
diff changeset
2
17
shoshi
parents: 16
diff changeset
3 import java.nio.ByteBuffer;
shoshi
parents: 16
diff changeset
4 import java.util.List;
shoshi
parents: 16
diff changeset
5 import java.util.Map;
9
shoshi
parents: 6
diff changeset
6 import junit.framework.Assert;
shoshi
parents: 6
diff changeset
7 import org.junit.Test;
shoshi
parents: 6
diff changeset
8 import treecms.api.Forest;
17
shoshi
parents: 16
diff changeset
9 import treecms.api.MonotonicTree;
shoshi
parents: 16
diff changeset
10 import treecms.api.MonotonicTreeNode;
9
shoshi
parents: 6
diff changeset
11 import treecms.api.NodeID;
16
shoshi
parents: 9
diff changeset
12 import treecms.api.SingleNode;
9
shoshi
parents: 6
diff changeset
13 import treecms.api.Tree;
17
shoshi
parents: 16
diff changeset
14 import treecms.api.TreeNode;
shoshi
parents: 16
diff changeset
15 import treecms.tree.util.NodeData;
6
12604eb6b615 added javadoc
shoshi
parents:
diff changeset
16
9
shoshi
parents: 6
diff changeset
17 /**
shoshi
parents: 6
diff changeset
18 * Forest実装の基本的なテスト
shoshi
parents: 6
diff changeset
19 * @author shoshi
shoshi
parents: 6
diff changeset
20 */
shoshi
parents: 6
diff changeset
21 public abstract class AbstractForestTest
shoshi
parents: 6
diff changeset
22 {
shoshi
parents: 6
diff changeset
23 public abstract Forest getInstance();
shoshi
parents: 6
diff changeset
24
shoshi
parents: 6
diff changeset
25 @Test
17
shoshi
parents: 16
diff changeset
26 public void testCreate()
9
shoshi
parents: 6
diff changeset
27 {
shoshi
parents: 6
diff changeset
28 Forest forest = getInstance();
17
shoshi
parents: 16
diff changeset
29
shoshi
parents: 16
diff changeset
30 //正常にSingleNodeを作成できることを確認する(引数なし)
shoshi
parents: 16
diff changeset
31 SingleNode test1 = forest.create();
shoshi
parents: 16
diff changeset
32 Assert.assertNotNull(test1);
shoshi
parents: 16
diff changeset
33
shoshi
parents: 16
diff changeset
34 //正常にSingleNodeを作成できることを確認する(引数あり)
shoshi
parents: 16
diff changeset
35 NodeData<SingleNode> d = new NodeData<SingleNode>();
shoshi
parents: 16
diff changeset
36 d.add(forest.create());
shoshi
parents: 16
diff changeset
37 d.put(ByteBuffer.wrap("name".getBytes()),ByteBuffer.wrap("value".getBytes()));
shoshi
parents: 16
diff changeset
38 SingleNode test2 = forest.create(d);
shoshi
parents: 16
diff changeset
39 Assert.assertNotNull(test2);
shoshi
parents: 16
diff changeset
40
shoshi
parents: 16
diff changeset
41 //指定したNodeData<SingleNode>が正しく継承されているか確認する
shoshi
parents: 16
diff changeset
42 List<SingleNode> list1 = d.getList();
shoshi
parents: 16
diff changeset
43 List<SingleNode> list2 = test2.getList();
shoshi
parents: 16
diff changeset
44 Assert.assertEquals(true,list1.equals(list2));
shoshi
parents: 16
diff changeset
45
shoshi
parents: 16
diff changeset
46 Map<ByteBuffer,ByteBuffer> map1 = d.asMap();
shoshi
parents: 16
diff changeset
47 Map<ByteBuffer,ByteBuffer> map2 = test2.asMap();
shoshi
parents: 16
diff changeset
48 Assert.assertEquals(true,map1.equals(map2));
9
shoshi
parents: 6
diff changeset
49 }
shoshi
parents: 6
diff changeset
50
shoshi
parents: 6
diff changeset
51 @Test
17
shoshi
parents: 16
diff changeset
52 public void testGet()
9
shoshi
parents: 6
diff changeset
53 {
shoshi
parents: 6
diff changeset
54 Forest forest = getInstance();
16
shoshi
parents: 9
diff changeset
55 SingleNode newNode = forest.create();
9
shoshi
parents: 6
diff changeset
56 NodeID newID = newNode.getID();
shoshi
parents: 6
diff changeset
57
17
shoshi
parents: 16
diff changeset
58 SingleNode test1 = forest.get(newID);
shoshi
parents: 16
diff changeset
59
shoshi
parents: 16
diff changeset
60 //同じノードであることを確認する
shoshi
parents: 16
diff changeset
61 Assert.assertEquals(newNode,test1);
9
shoshi
parents: 6
diff changeset
62
17
shoshi
parents: 16
diff changeset
63 //forest.get(NodeID _id)にnullが渡されたときNullPointerExceptionが発生する
shoshi
parents: 16
diff changeset
64 try{
shoshi
parents: 16
diff changeset
65 forest.get(null);
shoshi
parents: 16
diff changeset
66 Assert.fail("no NullPointerException occurs when call forest.get(null)");
shoshi
parents: 16
diff changeset
67 }catch(NullPointerException _e){
shoshi
parents: 16
diff changeset
68 }
shoshi
parents: 16
diff changeset
69
shoshi
parents: 16
diff changeset
70 //存在しないNodeIDが指定された場合はnullである
shoshi
parents: 16
diff changeset
71 NodeID updated = newID.update();
shoshi
parents: 16
diff changeset
72 SingleNode test2 = forest.get(updated);
shoshi
parents: 16
diff changeset
73 Assert.assertNull(test2);
9
shoshi
parents: 6
diff changeset
74 }
shoshi
parents: 6
diff changeset
75
shoshi
parents: 6
diff changeset
76 @Test
shoshi
parents: 6
diff changeset
77 public void testGetTip()
shoshi
parents: 6
diff changeset
78 {
shoshi
parents: 6
diff changeset
79 Forest forest = getInstance();
17
shoshi
parents: 16
diff changeset
80
shoshi
parents: 16
diff changeset
81 //SingleNodeを作成した時点で、最新版と比較し一致することを確認する
16
shoshi
parents: 9
diff changeset
82 SingleNode newNode = forest.create();
9
shoshi
parents: 6
diff changeset
83 NodeID newID = newNode.getID();
16
shoshi
parents: 9
diff changeset
84 SingleNode tip = forest.getTip(newID.getUUID());
9
shoshi
parents: 6
diff changeset
85
shoshi
parents: 6
diff changeset
86 Assert.assertEquals(newNode,tip);
17
shoshi
parents: 16
diff changeset
87
shoshi
parents: 16
diff changeset
88 //同じUUIDを持つSingleNodeを登録すると、最新版が更新される
shoshi
parents: 16
diff changeset
89 NodeData<SingleNode> d = new NodeData<SingleNode>(tip,tip);
shoshi
parents: 16
diff changeset
90 SingleNode test1 = forest.create(tip.getID().update(),d);
shoshi
parents: 16
diff changeset
91 tip = forest.getTip(test1.getID().getUUID());
shoshi
parents: 16
diff changeset
92
shoshi
parents: 16
diff changeset
93 Assert.assertEquals(test1,tip);
shoshi
parents: 16
diff changeset
94
shoshi
parents: 16
diff changeset
95 //nullが渡された場合は、NullPointerExceptionが発生する
shoshi
parents: 16
diff changeset
96 try{
shoshi
parents: 16
diff changeset
97 forest.getTip(null);
shoshi
parents: 16
diff changeset
98 Assert.fail("no NullPointerException occurs when call forest.getTip(null)");
shoshi
parents: 16
diff changeset
99 }catch(NullPointerException _e){
shoshi
parents: 16
diff changeset
100 //OK
shoshi
parents: 16
diff changeset
101 }
9
shoshi
parents: 6
diff changeset
102 }
shoshi
parents: 6
diff changeset
103
16
shoshi
parents: 9
diff changeset
104 @Test
17
shoshi
parents: 16
diff changeset
105 public void testGetTree()
16
shoshi
parents: 9
diff changeset
106 {
17
shoshi
parents: 16
diff changeset
107 Forest f = getInstance();
16
shoshi
parents: 9
diff changeset
108
17
shoshi
parents: 16
diff changeset
109 //同一のForestから作成されたSingleNodeから正しくTreeが作成できるか確認する。
shoshi
parents: 16
diff changeset
110 SingleNode n = f.create();
shoshi
parents: 16
diff changeset
111 Tree t = f.getTree(n);
shoshi
parents: 16
diff changeset
112 Assert.assertNotNull(t);
shoshi
parents: 16
diff changeset
113
shoshi
parents: 16
diff changeset
114 //作成したTreeからTreeNodeのルートが取得できる。
shoshi
parents: 16
diff changeset
115 TreeNode root = t.getRoot();
shoshi
parents: 16
diff changeset
116 Assert.assertNotNull(t.getRoot());
shoshi
parents: 16
diff changeset
117
shoshi
parents: 16
diff changeset
118 //取得したTreeNodeから引数に指定したSingleNodeが取得できるか確認する
shoshi
parents: 16
diff changeset
119 Assert.assertEquals(n,root.getNode());
16
shoshi
parents: 9
diff changeset
120 }
shoshi
parents: 9
diff changeset
121
17
shoshi
parents: 16
diff changeset
122 @Test
shoshi
parents: 16
diff changeset
123 public void testGetMonotonicTree()
shoshi
parents: 16
diff changeset
124 {
shoshi
parents: 16
diff changeset
125 Forest f = getInstance();
shoshi
parents: 16
diff changeset
126 SingleNode newNode = f.create();
shoshi
parents: 16
diff changeset
127
shoshi
parents: 16
diff changeset
128 Tree newTree = f.getTree(newNode);
shoshi
parents: 16
diff changeset
129 MonotonicTree newMonoTree = f.getMonotonicTree(newTree);
shoshi
parents: 16
diff changeset
130 Assert.assertNotNull(newMonoTree);
shoshi
parents: 16
diff changeset
131
shoshi
parents: 16
diff changeset
132 MonotonicTreeNode m = newMonoTree.getRoot();
shoshi
parents: 16
diff changeset
133 Assert.assertNotNull(m);
shoshi
parents: 16
diff changeset
134 SingleNode n = m.getNode();
shoshi
parents: 16
diff changeset
135 Assert.assertEquals(true,n.equals(newNode));
shoshi
parents: 16
diff changeset
136
shoshi
parents: 16
diff changeset
137 Tree t2 = newMonoTree.getTree();
shoshi
parents: 16
diff changeset
138 Assert.assertNotNull(t2);
shoshi
parents: 16
diff changeset
139 Assert.assertEquals(true,t2.equals(t2));
shoshi
parents: 16
diff changeset
140 }
shoshi
parents: 16
diff changeset
141
9
shoshi
parents: 6
diff changeset
142 @Test
shoshi
parents: 6
diff changeset
143 public void testGetMainTree()
shoshi
parents: 6
diff changeset
144 {
shoshi
parents: 6
diff changeset
145 Forest forest = getInstance();
shoshi
parents: 6
diff changeset
146 Tree contents = forest.getMainTree();
shoshi
parents: 6
diff changeset
147
shoshi
parents: 6
diff changeset
148 Assert.assertNotNull(contents);
shoshi
parents: 6
diff changeset
149 }
6
12604eb6b615 added javadoc
shoshi
parents:
diff changeset
150 }