# HG changeset patch
# User Shoshi TAMAKI
# Date 1359366772 -32400
# Node ID cb9fabaedfd4a2ef35eefeec6ee43da9bd5276c3
# Parent 35e327577b5827d5f0b7b33d0ce200cd9814732e
added tests and changed testing provider to junit47
diff -r 35e327577b58 -r cb9fabaedfd4 pom.xml
--- a/pom.xml Sat Jan 26 22:52:32 2013 +0900
+++ b/pom.xml Mon Jan 28 18:52:52 2013 +0900
@@ -18,7 +18,7 @@
junit
junit
- 3.8.1
+ 4.7
test
@@ -32,11 +32,6 @@
3.2.1
- net.sf.jpf
- jpf
- 1.5
-
-
org.functionaljava
functionaljava
3.1
@@ -52,6 +47,21 @@
1.6
+
+ org.apache.maven.plugin
+ maven-surefire-plugin
+ 2.13
+
+ **/*TestBase.java
+
+
+
+ org.apache.maven.surefire
+ surefire-junit47
+ 2.13
+
+
+
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java Mon Jan 28 18:52:52 2013 +0900
@@ -3,7 +3,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Transaction;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
-public interface JungleTreeEditor extends TreeEditor , Transaction
+public interface JungleTreeEditor> extends TreeEditor , Transaction
{
}
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Attributes.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Attributes.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Attributes.java Mon Jan 28 18:52:52 2013 +0900
@@ -1,6 +1,8 @@
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
-public interface Attributes
+import java.nio.ByteBuffer;
+
+public interface Attributes
{
- public V get(K _key);
+ public ByteBuffer get(String _key);
}
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/AttributesContainer.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/AttributesContainer.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/AttributesContainer.java Mon Jan 28 18:52:52 2013 +0900
@@ -1,6 +1,6 @@
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
-public interface AttributesContainer
+public interface AttributesContainer
{
- public Attributes getAttributes();
+ public Attributes getAttributes();
}
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java Mon Jan 28 18:52:52 2013 +0900
@@ -1,7 +1,6 @@
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
-import java.nio.ByteBuffer;
-public interface Node extends AttributesContainer , Parent
+public interface Node extends AttributesContainer , Parent
{
}
\ No newline at end of file
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java Mon Jan 28 18:52:52 2013 +0900
@@ -13,7 +13,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-public class DefaultAttributes implements Attributes
+public class DefaultAttributes implements Attributes
{
private final TreeMap attrs;
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Mon Jan 28 18:52:52 2013 +0900
@@ -18,7 +18,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
public class DefaultTreeEditor>
- implements TreeEditor
+ implements TreeEditor>
{
private final T root;
private final Traverser traverser;
@@ -35,31 +35,31 @@
}
@Override
- public Either appendChild(NodePath _path,int _pos)
+ public Either> appendChild(NodePath _path,int _pos)
{
return edit(_path,new AppendChildAt(_pos));
}
@Override
- public Either deleteChild(NodePath _path,int _pos)
+ public Either> deleteChild(NodePath _path,int _pos)
{
return edit(_path,new DeleteChildAt(_pos));
}
@Override
- public Either putAttribute(NodePath _path, String _key,ByteBuffer _value)
+ public Either> putAttribute(NodePath _path, String _key,ByteBuffer _value)
{
return edit(_path,new PutAttribute(_key,_value));
}
@Override
- public Either deleteAttribute(NodePath _path, String _key)
+ public Either> deleteAttribute(NodePath _path, String _key)
{
return edit(_path,new DeleteAttribute(_key));
}
@Override
- public Either edit(NodePath _path,NodeEditor _editor)
+ public Either> edit(NodePath _path,NodeEditor _editor)
{
DefaultEvaluator e = new DefaultEvaluator(_path);
TraversableNodeWrapper wrap = new TraversableNodeWrapper(root);
@@ -70,12 +70,12 @@
}
Traversal> t = either.b();
- Either ret = clone(t,_editor);
+ Either> ret = clone(t,_editor);
return ret;
}
- private Either clone(Traversal> _t,NodeEditor _editor)
+ private Either> clone(Traversal> _t,NodeEditor _editor)
{
// copying nodes from bottom to root
@@ -112,7 +112,7 @@
}
T newRoot = child;
- TreeEditor newEditor = new DefaultTreeEditor(newRoot,traverser);
+ DefaultTreeEditor newEditor = new DefaultTreeEditor(newRoot,traverser);
return DefaultEither.newB(newEditor);
}
}
\ No newline at end of file
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java Mon Jan 28 18:52:52 2013 +0900
@@ -7,8 +7,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-public interface EditableAttributes>
- extends Attributes
+public interface EditableAttributes> extends Attributes
{
public Either delete(String _key);
public Either put(String _key,ByteBuffer _value);
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableNode.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableNode.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableNode.java Mon Jan 28 18:52:52 2013 +0900
@@ -1,12 +1,9 @@
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer;
-import java.nio.ByteBuffer;
-
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainer;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Parent;
-public interface EditableNode>
- extends AttributesContainer , Parent
+public interface EditableNode> extends AttributesContainer , Parent
{
public EditableAttributes getAttributes();
public EditableChildren getChildren();
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/ClonableDefaultNode.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/ClonableDefaultNode.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/ClonableDefaultNode.java Mon Jan 28 18:52:52 2013 +0900
@@ -25,4 +25,9 @@
{
return new ClonableDefaultAttributes(wrap);
}
+
+ public DefaultNode getWrapped()
+ {
+ return wrap;
+ }
}
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java Mon Jan 28 18:52:52 2013 +0900
@@ -5,62 +5,116 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+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.store.trasnformer.NodeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-public class DefaultJungleTreeEditor implements JungleTreeEditor
+public class DefaultJungleTreeEditor implements JungleTreeEditor
{
private final TransactionManager txManager;
private final DefaultNode root;
private final DefaultTreeEditor> editor;
+ private final Traverser traverser;
- public DefaultJungleTreeEditor(DefaultNode _root,TransactionManager _txManager)
+ public DefaultJungleTreeEditor(DefaultNode _root,TransactionManager _txManager,Traverser _traverser)
{
root = _root;
txManager = _txManager;
+ ClonableDefaultNode node = new ClonableDefaultNode(root);
+ LoggingNode loggingNode = new LoggingNode(node);
+ editor = new DefaultTreeEditor>(loggingNode,_traverser);
+ traverser = _traverser;
}
@Override
- public Either appendChild(NodePath _path, int _pos)
+ public Either appendChild(NodePath _path, int _pos)
{
+ Either>> either = editor.appendChild(_path,_pos);
+ if(either.isA()){
+ return DefaultEither.newA(either.a());
+ }
+ DefaultTreeEditor> newTreeEditor = either.b();
+ DefaultNode newRoot = newTreeEditor.getRootNode().getWrapper().getWrapped();
- return null;
+ return DefaultEither.newB(new DefaultJungleTreeEditor(newRoot,txManager,traverser));
}
@Override
- public Either deleteChild(NodePath _path, int _pos)
+ public Either deleteChild(NodePath _path, int _pos)
{
- return null;
+ Either>> either = editor.deleteChild(_path,_pos);
+ if(either.isA()){
+ return DefaultEither.newA(either.a());
+ }
+
+ DefaultTreeEditor> newTreeEditor = either.b();
+ DefaultNode newRoot = newTreeEditor.getRootNode().getWrapper().getWrapped();
+
+ return DefaultEither.newB(new DefaultJungleTreeEditor(newRoot,txManager,traverser));
}
@Override
- public Either putAttribute(NodePath _path,String _key,ByteBuffer _value)
+ public Either putAttribute(NodePath _path,String _key,ByteBuffer _value)
{
- return null;
+ Either>> either = editor.putAttribute(_path,_key,_value);
+ if(either.isA()){
+ return DefaultEither.newA(either.a());
+ }
+
+ DefaultTreeEditor> newTreeEditor = either.b();
+ DefaultNode newRoot = newTreeEditor.getRootNode().getWrapper().getWrapped();
+
+ return DefaultEither.newB(new DefaultJungleTreeEditor(newRoot,txManager,traverser));
}
@Override
- public Either deleteAttribute(NodePath _path, String _key)
+ public Either deleteAttribute(NodePath _path, String _key)
{
- return null;
+ Either>> either = editor.deleteAttribute(_path,_key);
+ if(either.isA()){
+ return DefaultEither.newA(either.a());
+ }
+
+ DefaultTreeEditor> newTreeEditor = either.b();
+ DefaultNode newRoot = newTreeEditor.getRootNode().getWrapper().getWrapped();
+
+ return DefaultEither.newB(new DefaultJungleTreeEditor(newRoot,txManager,traverser));
}
@Override
- public Either edit(NodePath _path,NodeEditor _transformer)
+ public Either edit(NodePath _path,NodeEditor _transformer)
{
- return null;
+ Either>> either = editor.edit(_path,_transformer);
+ if(either.isA()){
+ return DefaultEither.newA(either.a());
+ }
+
+ DefaultTreeEditor> newTreeEditor = either.b();
+ DefaultNode newRoot = newTreeEditor.getRootNode().getWrapper().getWrapped();
+
+ return DefaultEither.newB(new DefaultJungleTreeEditor(newRoot,txManager,traverser));
}
@Override
public Either success()
{
- return null;
+ LoggingNode loggingNode = editor.getRootNode();
+ Logger log = loggingNode.getLogger();
+ DefaultNode newRoot = loggingNode.getWrapper().getWrapped();
+
+ Either either = txManager.commit(newRoot,log);
+ if(either.isA()){
+ return DefaultEither.newA(either.a());
+ }
+
+ return DefaultEither.newB(either.b());
}
}
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,17 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+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.util.Either;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
+public class DefaultTransactionManager implements TransactionManager
+{
+ @Override
+ public Either commit(DefaultNode _newRoot, Logger _log)
+ {
+ return null;
+ }
+
+}
diff -r 35e327577b58 -r cb9fabaedfd4 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java Sat Jan 26 22:52:32 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java Mon Jan 28 18:52:52 2013 +0900
@@ -1,8 +1,12 @@
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+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.util.Either;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
public interface TransactionManager
{
- public boolean commit(ChangeSet _ch);
+ public Either commit(DefaultNode _newRoot,Logger _log);
}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/AttributesContainerTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/AttributesContainerTest.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,22 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import junit.framework.TestCase;
+
+@Ignore
+public abstract class AttributesContainerTest extends TestCase
+{
+ public abstract AttributesContainer instance();
+
+ @Test
+ public void testGetAttributes()
+ {
+ AttributesContainer instance = instance();
+ Attributes attrs = instance.getAttributes();
+
+ Assert.assertNotNull(attrs);
+ }
+}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/AttributesTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/AttributesTest.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,34 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
+
+import org.junit.Ignore;
+import java.nio.ByteBuffer;
+import fj.P2;
+import fj.P;
+import fj.data.List;
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+@Ignore
+public abstract class AttributesTest extends TestCase
+{
+ @SuppressWarnings("unchecked")
+ public static List> ENTRIES = List.list(
+ P.p("KEY1",ByteBuffer.wrap("VALUE1".getBytes())),
+ P.p("KEY2",ByteBuffer.wrap("VALUE2".getBytes())),
+ P.p("KEY3",ByteBuffer.wrap("VALUE3".getBytes()))
+ );
+
+ public abstract Attributes instance();
+
+ public void testGet()
+ {
+ Attributes attrs = instance();
+
+ for(P2 entry : ENTRIES){
+ String key = entry._1();
+ ByteBuffer expect = entry._2();
+ ByteBuffer actual = attrs.get(key);
+ Assert.assertEquals(0,actual.compareTo(expect));
+ }
+ }
+}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,18 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+public abstract class ChildrenTest extends TestCase
+{
+ public abstract int expectSize();
+ public abstract Children instance();
+
+ public void testSize()
+ {
+ int expect = expectSize();
+ Children children = instance();
+
+ Assert.assertEquals(expect,children.size());
+ }
+}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,21 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+@Ignore
+public abstract class ParentTest> extends TestCase
+{
+ public abstract T instance();
+
+ @Test
+ public void testGetChildren()
+ {
+ T instance = instance();
+ Children> children = instance.getChildren();
+ Assert.assertNotNull(children);
+ }
+}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,29 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.node;
+
+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.AttributesTest;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultAttributes;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode;
+
+public class DefaultAttributesTest extends AttributesTest
+{
+ public DefaultAttributes instance()
+ {
+ List rawList = List.nil();
+ TreeMap rawMap = TreeMap.empty(Ord.stringOrd);
+
+ // add attributes
+
+ for(P2 entry : ENTRIES){
+ rawMap = rawMap.set(entry._1(),entry._2());
+ }
+
+ DefaultNode node = new DefaultNode(rawList,rawMap);
+ return node.getAttributes();
+ }
+}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,34 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.node;
+
+import java.nio.ByteBuffer;
+
+import fj.Ord;
+import fj.data.List;
+import fj.data.TreeMap;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.ChildrenTest;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultChildren;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode;
+
+public class DefaultChildrenTest extends ChildrenTest
+{
+
+ @Override
+ public DefaultChildren instance()
+ {
+ List rawList = List.nil();
+ for(int i = 0;i < expectSize();i ++){
+ rawList = rawList.cons(new DefaultNode());
+ }
+
+ TreeMap rawMap = TreeMap.empty(Ord.stringOrd);
+
+ return new DefaultNode(rawList,rawMap).getChildren();
+ }
+
+ @Override
+ public int expectSize()
+ {
+ return 3;
+ }
+}
\ No newline at end of file
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java Mon Jan 28 18:52:52 2013 +0900
@@ -0,0 +1,58 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.node;
+
+import java.nio.ByteBuffer;
+
+import fj.Ord;
+import fj.data.List;
+import fj.data.TreeMap;
+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 junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class DefaultNodeTest extends TestCase
+{
+ public DefaultNodeTest(String _name)
+ {
+ super(_name);
+ }
+
+ public static TestSuite suite()
+ {
+ TestSuite suite = new TestSuite();
+ suite.addTestSuite(DefaultNodeTest.AttributesContaierTestImpl.class);
+ suite.addTestSuite(DefaultNodeTest.ParentTestImpl.class);
+ return suite;
+ }
+
+ public static DefaultNode instance()
+ {
+ List rawList = List.nil();
+ TreeMap rawMap = TreeMap.empty(Ord.stringOrd);
+ DefaultNode node = new DefaultNode(rawList,rawMap);
+
+ return node;
+ }
+
+ public static class AttributesContaierTestImpl extends AttributesContainerTest
+ {
+ @Override
+ public AttributesContainer instance()
+ {
+ return DefaultNodeTest.instance();
+ }
+ }
+
+ public static class ParentTestImpl extends ParentTest
+ {
+
+ @Override
+ public DefaultNode instance()
+ {
+ return DefaultNodeTest.instance();
+ }
+
+ }
+}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jungle/core/AppTest.java
--- a/src/test/java/jungle/core/AppTest.java Sat Jan 26 22:52:32 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-package jungle.core;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jungle/misc/fj/ImmutableListExample.java
--- a/src/test/java/jungle/misc/fj/ImmutableListExample.java Sat Jan 26 22:52:32 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-package jungle.misc.fj;
-
-import fj.data.List;
-
-public class ImmutableListExample
-{
- public static void main(String[] _args)
- {
- List first = List.list("1","3","2","3");
- System.out.println(first.take(3+1).last());
- System.out.println(first.splitAt(2)._1());
- }
-}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jungle/misc/fj/ImmutableSetExample.java
--- a/src/test/java/jungle/misc/fj/ImmutableSetExample.java Sat Jan 26 22:52:32 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-package jungle.misc.fj;
-
-import fj.F;
-import fj.Ord;
-import fj.P2;
-import fj.Show;
-import fj.data.List;
-import fj.data.TreeMap;
-
-
-public class ImmutableSetExample
-{
- public static void main(String _args[])
- {
- TreeMap map = TreeMap.empty(Ord.stringOrd);
- Show>> s = Show.listShow(Show.p2Show(Show.stringShow,Show.stringShow));
-
- TreeMap second = map.set("hoge","fuga");
- TreeMap third = second.set("fuga","fuga");
- s.println(List.iterableList(second));
- s.println(List.iterableList(third));
- System.out.println(second.get("hoge").some());
-
- F predicate = new F(){
- @Override
- public String f(String str){
- return null;
- }
- };
-
- P2> transformResult = third.update("hoge",predicate);
- if(transformResult._1()){
- s.println(List.iterableList(transformResult._2()));
- }
- }
-}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jungle/misc/fj/XMLNodeTest.java
--- a/src/test/java/jungle/misc/fj/XMLNodeTest.java Sat Jan 26 22:52:32 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-package jungle.misc.fj;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-public class XMLNodeTest
-{
- public static void main(String _args[]) throws Exception
- {
- DocumentBuilder b = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- Document g = b.newDocument();
-
- Element e = g.createElement("hoge");
- g.appendChild(e);
- e.appendChild(g.createElement("hoge"));
- NodeList l1 = e.getElementsByTagName("hoge");
- System.out.println(l1.getLength());
- e.appendChild(g.createElement("hoge"));
- e.appendChild(g.createElement("hoge"));
- NodeList l2 = e.getElementsByTagName("hoge");
-
- System.out.println(l1.getLength());
- System.out.println(l2.getLength());
- }
-}
diff -r 35e327577b58 -r cb9fabaedfd4 src/test/java/jungle/util/PairTest.java
--- a/src/test/java/jungle/util/PairTest.java Sat Jan 26 22:52:32 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-package jungle.util;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
-import junit.framework.Assert;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class PairTest extends TestCase
-{
- public PairTest(String _testName)
- {
- super(_testName);
- }
-
- public static Test suite()
- {
- return new TestSuite(PairTest.class);
- }
-
- public void testPair()
- {
- Object left = new Object();
- Object right = new Object();
-
- Pair