Mercurial > hg > Members > tatsuki > bench > jungle-core
diff src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/GetNodeOfPathTest.java @ 171:624a7e6a3f75
add GetNodeOfPath
author | one |
---|---|
date | Tue, 13 Jan 2015 02:34:42 +0900 |
parents | |
children | 809f813d1083 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/GetNodeOfPathTest.java Tue Jan 13 02:34:42 2015 +0900 @@ -0,0 +1,51 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core; + +import java.nio.ByteBuffer; +import java.util.Iterator; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; +import junit.framework.Assert; + +import org.junit.Test; + +import com.sun.corba.se.impl.orbutil.graph.Node; +import com.sun.org.apache.bcel.internal.generic.RETURN; + +public class GetNodeOfPathTest { + + @Test + public void getNodeOfPathTest() { + Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTreeEditor(new DefaultTraverser())); + jungle.createNewTree("tree"); + JungleTree tree = jungle.getTreeByName("tree"); + JungleTreeEditor editor = tree.getTreeEditor(); + DefaultNodePath path = new DefaultNodePath(); + editor = editor.addNewChildAt(path, 0).b(); + path = path.add(0); + editor = editor.addNewChildAt(path, 0).b(); + path = path.add(0); + editor = editor.putAttribute(path, "KEY", ByteBuffer.wrap("tatsuki".getBytes())).b(); + editor.success(); + + InterfaceTraverser traverser = tree.getTraverser(true); + Iterator<TreeNode> nodeIterator = traverser.find((TreeNode node) -> { + String str = node.getAttributes().getString("KEY"); + if (str == null) + return false; + if (str.equals("tatsuki")) + return true; + return false; + }, "KEY", "tatsuki"); + TreeNode node = tree.getNodeOfPath(path).b(); + Assert.assertTrue(nodeIterator.hasNext()); + Assert.assertEquals(node, nodeIterator.next()); + } +}