view src/treecms/test/AbstractMonotonicTreeTest.java @ 16:bb9760760744

commit
author shoshi
date Sat, 21 May 2011 04:46:00 +0900
parents src/treecms/test/AbstractTreeEditorTest.java@17ed97ca9960
children 168deb591f21
line wrap: on
line source

package treecms.test;

import java.nio.ByteBuffer;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Test;
import treecms.api.Forest;
import treecms.api.MonotonicTree;
import treecms.api.Node;
import treecms.api.NodeID;
import treecms.api.SingleNode;
import treecms.api.Tree;
import treecms.tree.util.NodeData;

public abstract class AbstractMonotonicTreeTest
{
	public abstract Forest getForest();
	
	@Test
	public MonotonicTree testEdit()
	{
		Forest forest = getForest();
		SingleNode root = forest.create();
		
		SingleNode n1 = forest.create();
		SingleNode n11 = forest.create();
		SingleNode n12 = forest.create();
		n1.addAll(Arrays.asList(n11,n12));
		
		Node n2 = forest.create();
		Node n21 = forest.create();
		Node n22 = forest.create();
		n2.addAll(Arrays.asList(n21,n22));
		
		Node n221 = forest.create();
		n22.add(n221);
		
		root.addAll(Arrays.asList(n1,n2));
		
		TreeEditor editor = forest.getTreeEditor(forest.getTree(root));
		
		//編集開始
		NodeData data = n221.getData();
		data.put(ByteBuffer.wrap("name".getBytes()),ByteBuffer.wrap("value".getBytes()));
		
		try{
			Node new221 = editor.updateTree(n221,data); //n221を編集する。パスはroot -> n2 -> n22 -> n221となるはず
			NodeID oldID = n221.getID();
			NodeID newID = new221.getID();
			
			//編集したノードは同じUUIDを持つはず
			Assert.assertTrue(oldID.isFamily(newID));
			
			Node newRoot = 
			NodePathFinder finder = new NodePathFinder()
			
		}catch(PathNotFoundException _e){
			Assert.fail(_e.getMessage());
		}
		
		return editor;
	}
	
	@Test
	public void testForceCommit()
	{
		testEdit();
	}
	
	@Test
	public void testCommitFailsWhenTreeWasUpdated()
	{
	}
	
	@Test
	public void testCheck()
	{
	}
	
	@Test
	public void testUpdate()
	{
	}
}