Mercurial > hg > Members > tatsuki > bench > jungle-core
view src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java @ 81:715a9fbf02fc
remove <T> many source
author | one |
---|---|
date | Sun, 31 Aug 2014 07:46:30 +0900 |
parents | 053c9b52a5b2 |
children | fb1dc448ac8c |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.impl.treeeditor; import java.nio.ByteBuffer; 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.store.trasnformer.AppendChildAt; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.tests.util.TestUtil; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import junit.framework.Assert; import junit.framework.TestCase; public class DefaultTreeEditorTest extends TestCase { public DefaultTreeEditor instance() { DefaultTraverser traverser = new DefaultTraverser(); return new DefaultTreeEditor(traverser); } public void testEdittingDoesNotEffectToOtherTree() { TreeNode root = TestUtil.createMockTree(3); DefaultTreeEditor editor = new DefaultTreeEditor(new DefaultTraverser()); DefaultNodePath path = new DefaultNodePath().add(0).add(2); TreeNode oldRoot = root; DefaultTreeEditor currentEditor = editor; String key = "path"; TreeNode currentRoot = root; for(DefaultNodePath part : path.inits()){ ByteBuffer value = ByteBuffer.wrap(part.toString().getBytes()); PutAttribute putAttribute = new PutAttribute(key,value); Either<Error,TreeNode> either = currentEditor.edit(currentRoot,part,putAttribute); if(either.isA()){ Assert.fail(); } currentRoot = either.b(); } TreeNode newRoot = currentRoot; DefaultTraverser traverser = new DefaultTraverser(); for(DefaultNodePath part : path.inits()){ Either<Error,Traversal<TreeNode>> either = traverser.traverse(newRoot,new DefaultEvaluator(part)); if(either.isA()){ Assert.fail(); } TreeNode target = either.b().destination(); String expected = part.toString(); String actual = new String(target.getAttributes().get(key).array()); Assert.assertEquals(expected,actual); } for(DefaultNodePath part : path.inits()){ Either<Error,Traversal<TreeNode>> either = traverser.traverse(oldRoot,new DefaultEvaluator(part)); if(either.isA()){ Assert.fail(); } TreeNode target = either.b().destination(); ByteBuffer actual = target.getAttributes().get(key); Assert.assertNull(actual); } } public void testEdit() { DefaultTreeEditor instance = instance(); DefaultTreeNode node = new DefaultTreeNode(); DefaultNodePath path = new DefaultNodePath(); Either<Error,TreeNode> either = instance.edit(node,path,new AppendChildAt(0)); if(either.isA()){ Assert.fail(); } TreeNode newRoot = either.b(); Assert.assertEquals(1,newRoot.getChildren().size()); } }