Mercurial > hg > Members > tatsuki > bench > jungle-core
view src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableChildrenTest.java @ 40:6decea87ef88
forgot to add files
author | Shoshi TAMAKI |
---|---|
date | Tue, 29 Jan 2013 01:11:39 +0900 |
parents | |
children | ed6737db637a |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor; 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 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().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()); } }