# HG changeset patch # User Shoshi TAMAKI # Date 1359558591 -32400 # Node ID a545fe750a789ea482539708ba9f25d2658ae4cf # Parent ed6737db637a4a6ed4dce746e1ae9c96ebecacc9 added more tests diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -0,0 +1,25 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; +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.Assert; +import junit.framework.TestCase; + +public class AppendChildAtTest extends TestCase +{ + public void testEdit() + { + ClonableDefaultNode node = new ClonableDefaultNode(new DefaultNode()); + AppendChildAt op = new AppendChildAt(0); + Either either = op.edit(node); + if(either.isA()){ + Assert.fail(); + } + + node = either.b(); + Assert.assertEquals(1,node.getChildren().size()); + } +} diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -0,0 +1,36 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor; + +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteAttribute; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; +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.Assert; +import junit.framework.TestCase; + +public class DeleteAttributeAtTest extends TestCase +{ + public void testEdit() + { + String key = "KEY"; + ByteBuffer value = ByteBuffer.wrap(key.getBytes()); + + ClonableDefaultNode node = new ClonableDefaultNode(new DefaultNode()); + Either either = node.getAttributes().put(key, value); + if(either.isA()){ + Assert.fail(); + } + node = either.b(); + + DeleteAttribute op = new DeleteAttribute(key); + either = op.edit(node); + if(either.isA()){ + Assert.fail(); + } + ClonableDefaultNode newNode = either.b(); + ByteBuffer ret = newNode.getAttributes().get(key); + Assert.assertNull(ret); + } +} diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -0,0 +1,32 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; +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.Assert; +import junit.framework.TestCase; + +public class DeleteChildAtTest extends TestCase +{ + public void testEdit() + { + ClonableDefaultNode node = new ClonableDefaultNode(new DefaultNode()); + Either either = node.getChildren().addNewChildAt(0); + if(either.isA()){ + Assert.fail(); + } + node = either.b(); + Assert.assertEquals(1,node.getChildren().size()); + + DeleteChildAt op = new DeleteChildAt(0); + either = op.edit(node); + if(either.isA()){ + Assert.fail(); + } + node = either.b(); + Assert.assertEquals(0,node.getChildren().size()); + } +} diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/NodeEditorTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/NodeEditorTest.java Tue Jan 29 23:42:54 2013 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/NodeEditorTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -2,7 +2,7 @@ import junit.framework.TestCase; -public class NodeEditorTest extends TestCase +public abstract class NodeEditorTest extends TestCase { public void testEdit() { diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -0,0 +1,31 @@ +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.impl.DefaultNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; +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 class PutAttributeTest extends TestCase +{ + public void testEdit() + { + String key = "KEY"; + ByteBuffer value = ByteBuffer.wrap(key.getBytes()); + ClonableDefaultNode node = new ClonableDefaultNode(new DefaultNode()); + PutAttribute op = new PutAttribute(key,value); + Either either = op.edit(node); + if(either.isA()){ + Assert.fail(); + } + + node = either.b(); + ByteBuffer ret = node.getAttributes().get(key); + Assert.assertEquals(0,ret.compareTo(value)); + } +} diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingAttributesTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingAttributesTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -0,0 +1,62 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; + +import java.nio.ByteBuffer; + +import fj.Ord; +import fj.P2; +import fj.data.List; +import fj.data.TreeMap; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesTest; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor.EditableAttributesTest; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class LoggingAttributesTest extends TestCase +{ + public static TestSuite suite() + { + TestSuite suite = new TestSuite(); + suite.addTestSuite(AttributeTestImpl.class); + suite.addTestSuite(EditableAttributesTestImpl.class); + return suite; + } + + public static LoggingNode instance() + { + List rawList = List.nil(); + TreeMap rawMap = TreeMap.empty(Ord.stringOrd); + + for(P2 entry : AttributesTest.ENTRIES){ + rawMap = rawMap.set(entry._1(),entry._2()); + } + + return new LoggingNode(new ClonableDefaultNode(new DefaultNode(rawList,rawMap))); + } + + public static class AttributeTestImpl extends AttributesTest + { + + @Override + public Attributes instance() + { + return LoggingAttributesTest.instance().getAttributes(); + } + + } + + public static class EditableAttributesTestImpl extends EditableAttributesTest> + { + + @Override + public EditableAttributes> instance() + { + return LoggingAttributesTest.instance().getAttributes(); + } + + } +} diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingChildrenTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingChildrenTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -0,0 +1,44 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor.EditableChildrenTest; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.treeeditor.ClonableChildrenTest; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class LoggingChildrenTest extends TestCase +{ + public static TestSuite suite() + { + TestSuite suite = new TestSuite(); + suite.addTestSuite(EditableChildrenTestImpl.class); + suite.addTestSuite(ClonableChildrenTestImpl.class); + return suite; + } + + public static LoggingNode instance() + { + return new LoggingNode(new ClonableDefaultNode(new DefaultNode())); + } + + public static class ClonableChildrenTestImpl extends ClonableChildrenTest> + { + @Override + public LoggingNode instance() + { + return LoggingChildrenTest.instance(); + } + } + + public static class EditableChildrenTestImpl extends EditableChildrenTest> + { + @Override + public EditableChildren> instance() + { + return LoggingChildrenTest.instance().getChildren(); + } + } +} diff -r ed6737db637a -r a545fe750a78 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingNodeTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingNodeTest.java Thu Jan 31 00:09:51 2013 +0900 @@ -0,0 +1,62 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; + +import org.junit.Assert; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainer; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainerTest; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.ParentTest; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.Logger; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class LoggingNodeTest extends TestCase +{ + public void testGetLoggerIsNotNull() + { + LoggingNode instance = instance(); + Logger log = instance.getLogger(); + Assert.assertNotNull(log); + } + + public void testGetWrappedIsNotNull() + { + LoggingNode instance = instance(); + Object wrap = instance.getWrapper(); + Assert.assertNotNull(wrap); + } + + public static TestSuite suite() + { + TestSuite suite = new TestSuite(); + suite.addTestSuite(ParentTestImpl.class); + suite.addTestSuite(AttributesContainerTestImpl.class); + suite.addTestSuite(LoggingNodeTest.class); + return suite; + } + + public static LoggingNode instance() + { + return new LoggingNode(new ClonableDefaultNode(new DefaultNode())); + } + + public static class ParentTestImpl extends ParentTest> + { + @Override + public LoggingNode instance() + { + return LoggingNodeTest.instance(); + } + } + + public static class AttributesContainerTestImpl extends AttributesContainerTest + { + @Override + public AttributesContainer instance() + { + return LoggingNodeTest.instance(); + } + } +}