1 package org.sapia.archie; 2 3 import org.sapia.archie.impl.*; 4 5 import junit.framework.TestCase; 6 7 import java.util.HashMap ; 8 9 10 19 public class SingleValueNodeTest extends TestCase { 20 public SingleValueNodeTest(String name) { 21 super(name); 22 } 23 24 public void testPutGetValue() throws Exception { 25 NamePart name = new DefaultNameParser().parse("name").first(); 26 SingleValueNode node = new SingleValueNode(new HashMap (), new HashMap (), 27 new DefaultNodeFactory()); 28 super.assertTrue(node.putValue(name, "value", true)); 29 super.assertEquals("value", node.getValue(name)); 30 31 super.assertTrue(!node.putValue(name, "value2", false)); 32 super.assertEquals("value", node.getValue(name).toString()); 33 34 super.assertTrue(node.putValue(name, "value2", true)); 35 super.assertEquals("value2", node.getValue(name).toString()); 36 } 37 38 public void testOnWriteRead() throws Exception { 39 NamePart name = new DefaultNameParser().parse("name").first(); 40 TestSingeValueNode node = new TestSingeValueNode(); 41 node.putValue(name, "SomeObject", true); 42 super.assertTrue(node.write); 43 super.assertEquals("SomeObject", node.getValue(name)); 44 super.assertTrue(node.read); 45 46 } 47 48 public void testRemoveValue() throws Exception { 49 NamePart name = new DefaultNameParser().parse("name").first(); 50 SingleValueNode node = new SingleValueNode(new HashMap (), new HashMap (), new DefaultNodeFactory()); 51 node.putValue(name, "value", true); 52 node.removeValue(name); 53 super.assertTrue(node.getValue(name) == null); 54 } 55 56 public void testCreateChild() throws Exception { 57 SingleValueNode node = new SingleValueNode(new HashMap (), new HashMap (), new DefaultNodeFactory()); 58 DefaultNamePart n; 59 node.createChild(n = new DefaultNamePart("child")); 60 super.assertTrue(node.getChild(n) != null); 61 } 62 63 public void testRemoveChild() throws Exception { 64 SingleValueNode node = new SingleValueNode(new HashMap (), new HashMap (), new DefaultNodeFactory()); 65 DefaultNamePart n; 66 node.createChild(n = new DefaultNamePart("child")); 67 node.removeChild(n); 68 super.assertTrue(node.getChild(n) == null); 69 } 70 71 public void testGetChildrenCount() throws Exception { 72 SingleValueNode node = new SingleValueNode(new HashMap (), new HashMap (), new DefaultNodeFactory()); 73 node.createChild(new DefaultNamePart("child1")); 74 node.createChild(new DefaultNamePart("child2")); 75 super.assertEquals(2, node.getChildrenCount()); 76 77 } 78 79 static class TestSingeValueNode extends SingleValueNode{ 80 81 boolean read, write; 82 83 TestSingeValueNode() throws ProcessingException{ 84 super(new HashMap (), new HashMap (), new DefaultNodeFactory()); 85 } 86 87 protected Object onRead(NamePart part, Object toRead) { 88 read = true; 89 return ((TestBinding)toRead).bound; 90 } 91 92 95 protected Object onWrite(NamePart part, Object o) { 96 write = true; 97 TestBinding bd = new TestBinding(); 98 bd.bound = o; 99 return bd; 100 } 101 102 } 103 104 static class TestBinding{ 105 Object bound; 106 } 107 } 108 | Popular Tags |