view src/test/java/DefaultJungleTreeTest.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

import java.nio.ByteBuffer;

import fj.data.List;
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;
import junit.framework.TestCase;


public class DefaultJungleTreeTest extends TestCase
{
	public Jungle instance()
	{
		Jungle j = new DefaultJungle(null,"hogehoge",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()){
			Assert.fail();
		}
		editor1 = either.b();
		editor1.success();
		
		// check the value ;
		TreeNode node = tree.getRootNode();
		List<ByteBuffer> valueList = node.getAttributes().get(key);
		ByteBuffer v = valueList.head();
		Assert.assertEquals(0,v.compareTo(value));
	   Assert.assertEquals(1,tree.revision());
		// editor2 must fail transction
		either = editor2.putAttribute(root,key,value);
		if(either.isA()){
			Assert.fail();
		}
		editor2 = either.b();
		Either<Error,JungleTreeEditor> r = editor2.success();
		Assert.assertTrue(r.isA());
	}
	
	public void testIsolation()
	{
		
	}
}