Mercurial > hg > Members > kazuma > jungle-ormapper
comparison src/test/java/jp/ac/u_ryukyu/ie/cr/JungleTest.java @ 7:cd5f2ba0f894 default tip
modify jungleTest
author | tatsuki |
---|---|
date | Thu, 01 Dec 2016 16:23:13 +0900 |
parents | 44465893e8b8 |
children |
comparison
equal
deleted
inserted
replaced
6:233bb94ec43a | 7:cd5f2ba0f894 |
---|---|
2 | 2 |
3 import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; | 3 import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; |
4 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; | 4 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; |
5 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree; | 5 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree; |
6 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; | 6 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; |
7 import jp.ac.u_ryukyu.ie.cr.jungle.data.list.DefaultNode; | |
8 import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.Node; | |
9 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.NullJournal; | 7 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.NullJournal; |
8 import jp.ac.u_ryukyu.ie.cr.jungle.query.AllNodeIterator; | |
10 import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath; | 9 import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath; |
11 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath; | 10 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath; |
12 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor; | 11 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor; |
13 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; | 12 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; |
14 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNodeAttributes; | |
15 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTreeNode; | |
16 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; | 13 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; |
17 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser; | 14 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser; |
18 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; | 15 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; |
19 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; | 16 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; |
20 import junit.framework.Assert; | 17 import junit.framework.Assert; |
21 import org.junit.Test; | 18 import org.junit.Test; |
22 | 19 |
23 import java.nio.ByteBuffer; | 20 import java.nio.ByteBuffer; |
24 import java.security.Key; | |
25 import java.util.Iterator; | 21 import java.util.Iterator; |
26 | 22 |
27 /** | 23 /** |
28 * Created by e135768K on 2016/11/29. | 24 * Created by e135768K on 2016/11/29. |
29 */ | 25 */ |
30 public class JungleTest { | 26 public class JungleTest { |
31 | 27 |
32 public static Jungle jungle; | 28 public static Jungle jungle; |
33 public static DefaultNodePath root = new DefaultNodePath(); | 29 public static DefaultNodePath root = new DefaultNodePath(); |
30 | |
34 @Test | 31 @Test |
35 public void GetTest () { | 32 public void GetTest() { |
36 jungle = new DefaultJungle(new NullJournal(), "Labo", new DefaultTreeEditor(new DefaultTraverser())); | 33 jungle = new DefaultJungle(new NullJournal(), "Labo", new DefaultTreeEditor(new DefaultTraverser())); |
37 jungle.createNewTree("User"); | 34 jungle.createNewTree("User"); |
38 JungleTree tree = jungle.getTreeByName("User"); | 35 JungleTree tree = jungle.getTreeByName("User"); |
39 // Insert | 36 // Insert |
40 JungleTreeEditor editor = tree.getTreeEditor(); | 37 JungleTreeEditor editor = tree.getTreeEditor(); |
41 | 38 |
42 editor = put(editor, root, "Name", "Kono"); | 39 editor = put(editor, root, "Name", "Kono"); |
43 editor = put(editor, root, "Age", "40"); | 40 editor = put(editor, root, "Age", "40"); |
44 editor = put(editor, root, "Type", "Teacher"); | 41 editor = put(editor, root, "Type", "Teacher"); |
45 | 42 |
46 editor = put(editor, root, 0, "Name", "Takeda"); | 43 editor = addNewChild(editor, root, 0); |
47 editor = put(editor, root, 0, "Age", "20"); | 44 NodePath path = root.add(0); |
48 editor = put(editor, root, 0, "Type", "Student"); | 45 editor = put(editor, path, "Name", "kanagwa"); |
46 editor = put(editor, path, "Age", "24"); | |
47 editor = put(editor, path, "Type", "Teacher"); | |
49 | 48 |
50 editor = put(editor, root, 1, "Name", "Miyagi"); | 49 editor = addNewChild(editor,path,0); |
51 editor = put(editor, root, 1, "Age", "22"); | 50 editor = put(editor, path.add(0), "Name", "Takeda"); |
52 editor = put(editor, root, 1, "Type", "Student"); | 51 editor = put(editor, path.add(0), "Age", "20"); |
52 editor = put(editor, path.add(0), "Type", "Student"); | |
53 | 53 |
54 editor = put(editor, root, 2, "Name", "Higashionna"); | 54 editor = addNewChild(editor,path,1); |
55 editor = put(editor, root, 2, "Age", "20"); | 55 editor = put(editor, path.add(1), "Name", "Miyagi"); |
56 editor = put(editor, root, 2, "Type", "Student"); | 56 editor = put(editor, path.add(1), "Age", "22"); |
57 editor = put(editor, path.add(1), "Type", "Student"); | |
58 | |
59 editor = addNewChild(editor,path,2); | |
60 editor = put(editor, path.add(2), "Name", "Higashi"); | |
61 editor = put(editor, path.add(2), "Age", "20"); | |
62 editor = put(editor, path.add(2), "Type", "Student"); | |
63 | |
64 editor = addNewChild(editor,root,1); | |
65 path = root.add(1); | |
66 editor = put(editor, path, "Name", "atton"); | |
67 editor = put(editor, path, "Age", "24"); | |
68 editor = put(editor, path, "Type", "Teacher"); | |
69 | |
70 | |
71 editor = addNewChild(editor,path ,0); | |
72 path = path.add(0); | |
73 editor = put(editor, path, "Name", "parusu"); | |
74 editor = put(editor, path, "Age", "23"); | |
75 editor = put(editor, path, "Type", "Student"); | |
76 | |
77 path = new DefaultNodePath().add(0); | |
57 | 78 |
58 Either<Error, JungleTreeEditor> either = editor.success(); | 79 Either<Error, JungleTreeEditor> either = editor.success(); |
59 if (either.isA()) | 80 if (either.isA()) |
60 Assert.fail(); | 81 Assert.fail(); |
61 | 82 |
62 tree = jungle.getTreeByName("User"); | 83 tree = jungle.getTreeByName("User"); |
63 | |
64 // Find | |
65 InterfaceTraverser traverser = tree.getTraverser(false); | 84 InterfaceTraverser traverser = tree.getTraverser(false); |
66 Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { | 85 Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { |
67 String value = node.getAttributes().getString("Name"); | 86 String value = node.getAttributes().getString("Name"); |
68 if (value == null) | 87 if (value == null) |
69 return false; | 88 return false; |
70 if (value.equals("Takeda")) | 89 if (value.equals("Kono")) |
71 return true; | 90 return true; |
72 return false; | 91 return false; |
73 }, "Type", "Student"); | 92 }, "Type", "Teacher"); |
74 | 93 |
75 while (iterator.hasNext()){ | 94 while (iterator.hasNext()) { |
76 System.out.println(iterator.next().getAttributes().getString("Name")); | 95 TreeNode node = iterator.next(); |
96 AllNodeIterator nodeIterator = new AllNodeIterator(node); | |
97 while (nodeIterator.hasNext()) { | |
98 System.out.println(nodeIterator.next().getAttributes().getString("Name")); | |
99 } | |
77 } | 100 } |
78 // Get | |
79 // ByteBuffer kono_age = get("User", root, "Shinji"); | |
80 // ByteBuffer kazuma_age = get("User", root.add(0), "Kazuma"); | |
81 // ByteBuffer mitsuki_age = get("User", root.add(1), "Mitsuki"); | |
82 // ByteBuffer takui_age = get("User", root.add(2), "Takui"); | |
83 } | 101 } |
84 | 102 |
85 public JungleTreeEditor put(JungleTreeEditor editor, NodePath path, int n, String key, String value) { | 103 private JungleTreeEditor addNewChild(JungleTreeEditor editor, NodePath path, int i) { |
86 | 104 return editor.addNewChildAt(path,i).b(); |
87 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path, n); | |
88 if (either.isA()) | |
89 Assert.fail(); | |
90 editor = either.b(); | |
91 | |
92 either = editor.putAttribute(path.add(n), key, ByteBuffer.wrap(value.getBytes())); | |
93 if (either.isA()) | |
94 Assert.fail(); | |
95 editor = either.b(); | |
96 return editor; | |
97 } | 105 } |
98 | 106 |
99 public JungleTreeEditor put(JungleTreeEditor editor, NodePath path, String key, String value) { | 107 public JungleTreeEditor put(JungleTreeEditor editor, NodePath path, String key, String value) { |
100 | 108 return editor.putAttribute(path, key, ByteBuffer.wrap(value.getBytes())).b(); |
101 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, key, ByteBuffer.wrap(value.getBytes())); | |
102 if (either.isA()) | |
103 Assert.fail(); | |
104 editor = either.b(); | |
105 return editor; | |
106 } | 109 } |
107 | 110 |
108 public ByteBuffer get (String treeName, NodePath path, String key) { | 111 public ByteBuffer get(String treeName, NodePath path, String key) { |
109 JungleTree tree = jungle.getTreeByName(treeName); | 112 JungleTree tree = jungle.getTreeByName(treeName); |
110 Either<Error, TreeNode> e = tree.getNodeOfPath(path); | 113 Either<Error, TreeNode> e = tree.getNodeOfPath(path); |
111 if (e.isA()) | 114 if (e.isA()) |
112 Assert.fail(); | 115 Assert.fail(); |
113 TreeNode node = e.b(); | 116 TreeNode node = e.b(); |