view src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableChildrenTest.java @ 80:a833000f64bf

test program repair
author one
date Sun, 31 Aug 2014 03:30:03 +0900
parents ed6737db637a
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor;

import java.nio.ByteBuffer;
/*import org.junit.Assert;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditorError;
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.TestCase;

public abstract class EditableChildrenTest<T extends EditableNode<T>> extends TestCase
{
	public abstract EditableChildren<T> instance();
	
	public static final String KEY = "KEY";
	public static final ByteBuffer VALUE = ByteBuffer.wrap("VALUE".getBytes());
	
	public void testAddNewChildAtMuinusValue()
	{
		EditableChildren<T> children = instance();
		Either<Error,T> either = children.addNewChildAt(-1);
		if(!either.isA()){
			Assert.fail("addNewChildAt(-1) must returns INDEX_OUT_OF_BOUNDS Error");
		}
		
		Error e = either.a();
		Assert.assertSame(e,NodeEditorError.INDEX_OUT_OF_BOUNDS);
	}
	
	public void testAddNewChildAtOutOfBounds()
	{
		EditableChildren<T> children = instance();
		Either<Error,T> either = children.addNewChildAt(1);
		if(!either.isA()){
			Assert.fail("addNewChildAt(1) must returns INDEX_OUT_OF_BOUNDS Error");
		}
		
		Error e = either.a();
		Assert.assertSame(e,NodeEditorError.INDEX_OUT_OF_BOUNDS);
	}
	
	public void testAddNewChildAtMiddle()
	{
		EditableChildren<T> children = instance();
		
		for(int i = 0;i < 3;i ++){
			Either<Error,T> either = children.addNewChildAt(0);
			if(either.isA()){
				Assert.fail("fail when adding new child to head");
			}
			children = either.b().getChildren();
		}
		
		Either<Error, T> either = children.addNewChildAt(1);
		if(either.isA()){
			Assert.fail("fail when adding new child to middle (1)");
		}
		// size must be 4
		children = either.b().getChildren();
		Assert.assertEquals(4,children.size());
	}
	
	public void testAddNewChildAtToHead()
	{
		EditableChildren<T> children = instance();
		
		int size = children.size();
		
		Either<Error,T> either = children.addNewChildAt(0);
		if(either.isA()){
			Assert.fail("error during add new child to head");
		}
		children = either.b().getChildren();
		Assert.assertEquals(size + 1,children.size());
	}
	
	public void testDeleteChildAtMuinusValue()
	{
		EditableChildren<T> children = instance();
		Either<Error,T> either = children.deleteChildAt(-1);
		if(!either.isA()){
			Assert.fail("deleteChildAt(-1) must returns INDEX_OUT_OF_BOUNDS Error");
		}
		
		Error e = either.a();
		Assert.assertSame(e,NodeEditorError.INDEX_OUT_OF_BOUNDS);
	}
	
	public void testDeleteChildAtOutOfBounds()
	{
		EditableChildren<T> children = instance();
		Either<Error,T> either = children.deleteChildAt(1);
		if(!either.isA()){
			Assert.fail("deleteChildAt(1) must returns INDEX_OUT_OF_BOUNDS Error");
		}
		
		Error e = either.a();
		Assert.assertSame(e,NodeEditorError.INDEX_OUT_OF_BOUNDS);
	}
	
	public void testDeleteChildAtFailsWhenTheSizeIsZero()
	{
		EditableChildren<T> children = instance();
		Either<Error,T> either = children.deleteChildAt(0);
		if(!either.isA()){
			Assert.fail("deleteChildAt(1) must returns INDEX_OUT_OF_BOUNDS Error");
		}
		
		Error e = either.a();
		Assert.assertSame(e,NodeEditorError.INDEX_OUT_OF_BOUNDS);
	}
	
	public void testDeleteChildAt()
	{
		EditableChildren<T> children = instance();
		
		int size = children.size();
		
		Either<Error,T> either = children.addNewChildAt(0);
		if(either.isA()){
			Assert.fail("error during add new child to head");
		}
		children = either.b().getAttributes().put(KEY,VALUE).b().getChildren();
		Assert.assertEquals(size + 1,children.size());
		
		either = children.deleteChildAt(0);
		if(either.isA()){
			Assert.fail("error during deleting child");
		}
		children = either.b().getChildren();
		
		Assert.assertEquals(size,children.size());
	}
}*/