comparison src/treecms/test/AbstractMonotonicTreeTest.java @ 17:168deb591f21

commit
author shoshi
date Tue, 24 May 2011 00:33:12 +0900
parents bb9760760744
children
comparison
equal deleted inserted replaced
16:bb9760760744 17:168deb591f21
1 package treecms.test; 1 package treecms.test;
2 2
3 import java.nio.ByteBuffer; 3 import java.nio.ByteBuffer;
4 import java.util.Arrays; 4
5 import junit.framework.Assert; 5 import junit.framework.Assert;
6
6 import org.junit.Test; 7 import org.junit.Test;
7 import treecms.api.Forest; 8 import treecms.api.Forest;
8 import treecms.api.MonotonicTree; 9 import treecms.api.MonotonicTree;
9 import treecms.api.Node;
10 import treecms.api.NodeID;
11 import treecms.api.SingleNode; 10 import treecms.api.SingleNode;
11 import treecms.api.MonotonicTreeNode;
12 import treecms.api.Tree; 12 import treecms.api.Tree;
13 import treecms.tree.util.NodeData; 13 import treecms.tree.util.NodeChildrenImpl;
14 import treecms.tree.util.NodeFinder;
14 15
15 public abstract class AbstractMonotonicTreeTest 16 public abstract class AbstractMonotonicTreeTest
16 { 17 {
17 public abstract Forest getForest(); 18 public abstract Forest getForest();
18 19
19 @Test 20 @Test
20 public MonotonicTree testEdit() 21 public void testInitialize()
22 {
23 Forest f = getForest();
24 Tree t = f.getMainTree();
25 MonotonicTree mt = f.getMonotonicTree(t);
26 MonotonicTreeNode n = mt.getRoot();
27
28 Assert.assertEquals(true,t.getRoot().getID().equals(n.getID()));
29 }
30
31 @Test
32 public void testEdit()
21 { 33 {
22 Forest forest = getForest(); 34 Forest forest = getForest();
23 SingleNode root = forest.create(); 35 SingleNode root = forest.create();
24 36
25 SingleNode n1 = forest.create(); 37 SingleNode n1 = forest.create();
26 SingleNode n11 = forest.create(); 38 SingleNode n11 = forest.create();
27 SingleNode n12 = forest.create(); 39 SingleNode n12 = forest.create();
28 n1.addAll(Arrays.asList(n11,n12)); 40 n1.addAll(new NodeChildrenImpl<SingleNode>(n11,n12));
29 41
30 Node n2 = forest.create(); 42 SingleNode n2 = forest.create();
31 Node n21 = forest.create(); 43 SingleNode n21 = forest.create();
32 Node n22 = forest.create(); 44 SingleNode n22 = forest.create();
33 n2.addAll(Arrays.asList(n21,n22)); 45 n2.addAll(new NodeChildrenImpl<SingleNode>(n21,n22));
34 46
35 Node n221 = forest.create(); 47 SingleNode n221 = forest.create();
36 n22.add(n221); 48 n22.add(n221);
37 49
38 root.addAll(Arrays.asList(n1,n2)); 50 root.addAll(new NodeChildrenImpl<SingleNode>(n1,n2));
39 51
40 TreeEditor editor = forest.getTreeEditor(forest.getTree(root)); 52 MonotonicTree tree = forest.getMonotonicTree(forest.getTree(root));
53 NodeFinder<MonotonicTreeNode> finder = new NodeFinder<MonotonicTreeNode>(tree.getRoot());
54 MonotonicTreeNode node = finder.findByNodeID(n221.getID());
55 node.put(ByteBuffer.wrap("test".getBytes()),ByteBuffer.wrap("value".getBytes()));
41 56
42 //編集開始
43 NodeData data = n221.getData();
44 data.put(ByteBuffer.wrap("name".getBytes()),ByteBuffer.wrap("value".getBytes()));
45 57
46 try{
47 Node new221 = editor.updateTree(n221,data); //n221を編集する。パスはroot -> n2 -> n22 -> n221となるはず
48 NodeID oldID = n221.getID();
49 NodeID newID = new221.getID();
50
51 //編集したノードは同じUUIDを持つはず
52 Assert.assertTrue(oldID.isFamily(newID));
53
54 Node newRoot =
55 NodePathFinder finder = new NodePathFinder()
56
57 }catch(PathNotFoundException _e){
58 Assert.fail(_e.getMessage());
59 }
60
61 return editor;
62 }
63
64 @Test
65 public void testForceCommit()
66 {
67 testEdit();
68 }
69
70 @Test
71 public void testCommitFailsWhenTreeWasUpdated()
72 {
73 }
74
75 @Test
76 public void testCheck()
77 {
78 }
79
80 @Test
81 public void testUpdate()
82 {
83 } 58 }
84 } 59 }