view src/test/java/DefaultJungleTreeTest.java @ 0:44465893e8b8

first Commit
author Kazuma
date Wed, 30 Nov 2016 01:47:55 +0900
parents
children
line wrap: on
line source

import java.nio.ByteBuffer;

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

public class DefaultJungleTreeTest extends TestCase {
  public Jungle instance() {
    Jungle j = new DefaultJungle(null, "hogehoge", new DefaultTreeEditor(new DefaultTraverser()));
    return j;
  }

  public static final String key = "KEY";
  public static final ByteBuffer value = ByteBuffer.wrap(key.getBytes());

  public void testSampleTest() {
    Jungle j = instance();
    j.createNewTree("tree");
    JungleTree tree = j.getTreeByName("tree");
    Assert.assertEquals(0, tree.revision());
    JungleTreeEditor editor1 = tree.getTreeEditor();
    JungleTreeEditor editor2 = tree.getTreeEditor();

    DefaultNodePath root = new DefaultNodePath();
    Either<Error, JungleTreeEditor> either = editor1.putAttribute(root, key, value);
    if (either.isA()) {
    }
    editor1 = either.b();
    editor1.success();
    editor1.addNewChildAt(root, 0);
    // check the value ;
    TreeNode node = tree.getRootNode();
    ByteBuffer v = node.getAttributes().get(key);
    Assert.assertEquals(0, v.compareTo(value));
    Assert.assertEquals(1, tree.revision());
    // editor2 must fail transction
    either = editor1.putAttribute(root.add(0), key, value);
    if (either.isA()) {
    }
    editor2 = either.b();
    Either<Error, JungleTreeEditor> r = editor2.success();
  }

  public void testIsolation() {

  }
}