diff src/treecms/test/AbstractTreeEditorTest.java @ 9:17ed97ca9960

commit
author shoshi
date Mon, 18 Apr 2011 01:07:27 +0900
parents src/treecms/test/TreeEditorTest.java@12604eb6b615
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/test/AbstractTreeEditorTest.java	Mon Apr 18 01:07:27 2011 +0900
@@ -0,0 +1,86 @@
+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.Node;
+import treecms.api.NodeData;
+import treecms.api.NodeID;
+import treecms.api.Tree;
+import treecms.api.TreeEditor;
+import treecms.tree.util.PathNotFoundException;
+
+public abstract class AbstractTreeEditorTest
+{
+	public abstract Forest getForest();
+	
+	@Test
+	public TreeEditor testEdit()
+	{
+		Forest forest = getForest();
+		Node root = forest.create();
+		
+		Node n1 = forest.create();
+		Node n11 = forest.create();
+		Node 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()
+	{
+	}
+}