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

commit
author shoshi
date Mon, 18 Apr 2011 01:07:27 +0900
parents src/treecms/test/NodeTest.java@87bba22e4fa2
children bb9760760744
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/test/AbstractNodeTest.java	Mon Apr 18 01:07:27 2011 +0900
@@ -0,0 +1,94 @@
+package treecms.test;
+
+import java.nio.ByteBuffer;
+import java.util.LinkedList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import treecms.api.Node;
+import treecms.api.NodeID;
+
+/**
+ * Node実装の基本的なテスト
+ * @author shoshi
+ */
+public abstract class AbstractNodeTest
+{
+	/**
+	 * テストに用いるNodeを実装者は返す
+	 * @return Node
+	 */
+	public abstract Node getInstance();
+	
+	/**
+	 * NodeID取得のテスト
+	 */
+	@Test
+	public void testGetID()
+	{
+		Assert.assertNotNull(getInstance().getID());
+	}
+	
+	/**
+	 * Nodeのデータ(子供Nodeや属性のマップ)
+	 */
+	@Test
+	public void testGetData()
+	{
+		Assert.assertNotNull(getInstance().getData());
+	}
+	
+	/**
+	 * NodeからForestを取得するテスト
+	 */
+	@Test
+	public void testGetForest()
+	{
+		Assert.assertNotNull(getInstance().getForest());
+	}
+	
+	/**
+	 * Nodeに子供Nodeを追加するテスト
+	 */
+	@Test
+	public void testAddChildren()
+	{
+		Node node = getInstance();
+		
+		Node ch1 = node.getForest().create();
+		Node ch2 = node.getForest().create();
+		Node ch3 = node.getForest().create();
+		
+		LinkedList<Node> list = new LinkedList<Node>();
+		list.add(ch1);
+		list.add(ch2);
+		list.add(ch3);
+		
+		node.addAll(list);
+		
+		List<Node> children = node.children();
+		for(int i = 0;i < list.size();i ++){
+			NodeID id1 = children.get(i).getID();
+			NodeID id2 = list.get(i).getID();
+			
+			Assert.assertEquals(true,id1.equals(id2));
+		}
+	}
+	
+	/**
+	 * Nodeにセットした属性を取り出すテスト
+	 */
+	@Test
+	public void testSetAndGetAttribute()
+	{
+		Node node = getInstance();
+		byte[] name = "test".getBytes();
+		byte[] value = "test".getBytes();
+		
+		node.put(ByteBuffer.wrap(name),ByteBuffer.wrap(value));
+		Assert.assertEquals(true,node.get(ByteBuffer.wrap(name)).equals(ByteBuffer.wrap(value)));
+	}
+}