Mercurial > hg > Members > kazuma > jungle-ormapper
view 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 |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr; import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree; import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.persistent.NullJournal; import jp.ac.u_ryukyu.ie.cr.jungle.query.AllNodeIterator; import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; import junit.framework.Assert; import org.junit.Test; import java.nio.ByteBuffer; import java.util.Iterator; /** * Created by e135768K on 2016/11/29. */ public class JungleTest { public static Jungle jungle; public static DefaultNodePath root = new DefaultNodePath(); @Test public void GetTest() { jungle = new DefaultJungle(new NullJournal(), "Labo", new DefaultTreeEditor(new DefaultTraverser())); jungle.createNewTree("User"); JungleTree tree = jungle.getTreeByName("User"); // Insert JungleTreeEditor editor = tree.getTreeEditor(); editor = put(editor, root, "Name", "Kono"); editor = put(editor, root, "Age", "40"); editor = put(editor, root, "Type", "Teacher"); editor = addNewChild(editor, root, 0); NodePath path = root.add(0); editor = put(editor, path, "Name", "kanagwa"); editor = put(editor, path, "Age", "24"); editor = put(editor, path, "Type", "Teacher"); editor = addNewChild(editor,path,0); editor = put(editor, path.add(0), "Name", "Takeda"); editor = put(editor, path.add(0), "Age", "20"); editor = put(editor, path.add(0), "Type", "Student"); editor = addNewChild(editor,path,1); editor = put(editor, path.add(1), "Name", "Miyagi"); editor = put(editor, path.add(1), "Age", "22"); editor = put(editor, path.add(1), "Type", "Student"); editor = addNewChild(editor,path,2); editor = put(editor, path.add(2), "Name", "Higashi"); editor = put(editor, path.add(2), "Age", "20"); editor = put(editor, path.add(2), "Type", "Student"); editor = addNewChild(editor,root,1); path = root.add(1); editor = put(editor, path, "Name", "atton"); editor = put(editor, path, "Age", "24"); editor = put(editor, path, "Type", "Teacher"); editor = addNewChild(editor,path ,0); path = path.add(0); editor = put(editor, path, "Name", "parusu"); editor = put(editor, path, "Age", "23"); editor = put(editor, path, "Type", "Student"); path = new DefaultNodePath().add(0); Either<Error, JungleTreeEditor> either = editor.success(); if (either.isA()) Assert.fail(); tree = jungle.getTreeByName("User"); InterfaceTraverser traverser = tree.getTraverser(false); Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { String value = node.getAttributes().getString("Name"); if (value == null) return false; if (value.equals("Kono")) return true; return false; }, "Type", "Teacher"); while (iterator.hasNext()) { TreeNode node = iterator.next(); AllNodeIterator nodeIterator = new AllNodeIterator(node); while (nodeIterator.hasNext()) { System.out.println(nodeIterator.next().getAttributes().getString("Name")); } } } private JungleTreeEditor addNewChild(JungleTreeEditor editor, NodePath path, int i) { return editor.addNewChildAt(path,i).b(); } public JungleTreeEditor put(JungleTreeEditor editor, NodePath path, String key, String value) { return editor.putAttribute(path, key, ByteBuffer.wrap(value.getBytes())).b(); } public ByteBuffer get(String treeName, NodePath path, String key) { JungleTree tree = jungle.getTreeByName(treeName); Either<Error, TreeNode> e = tree.getNodeOfPath(path); if (e.isA()) Assert.fail(); TreeNode node = e.b(); return node.getAttributes().get(key); } }