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