view src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/GetOldTreeTest.java @ 148:a2c374a2686b

Merge with 0854f9a9e81db5db639f02a126ebabf1d004b98e
author one
date Fri, 21 Nov 2014 12:49:28 +0900
parents 72f454eb04ec 0854f9a9e81d
children 8a0aa8fc137c
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;


import java.nio.ByteBuffer;
import java.util.Iterator;

import org.junit.Test;

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.IndexTreeEditor;
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.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import junit.framework.Assert;

public class GetOldTreeTest {

  @Test
  public void getOldTreeTest() {
    Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTraverser());
    jungle.createNewTree("tree");
    JungleTree tree = jungle.getTreeByName("tree");
    JungleTreeEditor editor = tree.getTreeEditor();
    DefaultNodePath path = new DefaultNodePath();
   
    for (int num = 0; num < 10; num++) {
      JungleTreeEditor addChildEditor = editor.addNewChildAt(path, num).b();
      JungleTreeEditor putAttributeEditor = addChildEditor.putAttribute(path.add(num), "test", ByteBuffer.wrap("tatsuki".getBytes())).b();
      Either<Error, JungleTreeEditor> successEither = putAttributeEditor.success();
      Assert.assertFalse(successEither.isA());
      editor = successEither.b();
    }

    JungleTreeEditor newEditor = tree.getTreeEditor();
    JungleTreeEditor newPutEditor = newEditor.putAttribute(path.add(9), "test", ByteBuffer.wrap("kanagawa".getBytes())).b();
    newPutEditor.success();
    
    TreeNode root = tree.getRootNode();
    Either<Error, TreeNode> childNodeEither = root.getChildren().at(9);
    Assert.assertTrue(childNodeEither.isB());
    TreeNode child = childNodeEither.b();
    Iterator<String> valueIterator = child.getAttributes().getString("test");
    Assert.assertTrue(valueIterator.hasNext());
    String value = valueIterator.next();
    Assert.assertEquals(value,"kanagawa");
    
    JungleTree oldTree1 = tree.getOldTree(10).b();
    
    TreeNode oldRoot1 = oldTree1.getRootNode();
    Either<Error, TreeNode> oldChildNodeEither = oldRoot1.getChildren().at(9);
    Assert.assertTrue(oldChildNodeEither.isB());
    
    TreeNode oldChildNode = oldChildNodeEither.b();
    Iterator<String> oldValueIterator = oldChildNode.getAttributes().getString("test");
    Assert.assertTrue(oldValueIterator.hasNext());
    String oldValue = oldValueIterator.next();
    Assert.assertEquals(oldValue,"tatsuki");
    
    
    JungleTree oldTree2 = tree.getOldTree(9).b();
    TreeNode oldRoot2 = oldTree2.getRootNode();
    Assert.assertTrue(oldRoot2.getChildren().at(9).isA());
    
    
  }
}