1 4 package org.sapia.archie; 5 6 import java.util.HashMap ; 7 import java.util.List ; 8 9 import org.sapia.archie.impl.DefaultNameParser; 10 import org.sapia.archie.impl.DefaultNodeFactory; 11 import org.sapia.archie.impl.MultiValueNode; 12 13 import junit.framework.TestCase; 14 15 24 public class MultiValueNodeTest extends TestCase { 25 26 29 public MultiValueNodeTest(String arg0) { 30 super(arg0); 31 } 32 33 public void testPutGetValue() throws Exception { 34 NamePart name = new DefaultNameParser().parse("name").first(); 35 TestMultiValueNode node = new TestMultiValueNode(); 36 37 super.assertTrue(node.putValue(name, "value", true)); 38 super.assertEquals("value", node.getValue(name)); 39 40 super.assertTrue(!node.putValue(name, "value2", false)); 41 super.assertEquals("value", node.getValue(name).toString()); 42 43 super.assertTrue(node.putValue(name, "value2", true)); 44 45 super.assertEquals("value", node.getValue(name).toString()); 46 super.assertEquals("value2", node.getValue(name).toString()); 47 48 } 49 50 public void testRemoveValue() throws Exception { 51 NamePart name = new DefaultNameParser().parse("name").first(); 52 TestMultiValueNode node = new TestMultiValueNode(); 53 node.putValue(name, "value", true); 54 node.putValue(name, "value2", true); 55 node.removeValue(name); 56 super.assertTrue(node.getValue(name) == null); 57 } 58 59 public void testOnReadWrite() throws Exception { 60 NamePart name = new DefaultNameParser().parse("name").first(); 61 TestMultiValueNode node = new TestMultiValueNode(); 62 node.putValue(name, "value", true); 63 super.assertTrue(node.write); 64 node.getValue(name); 65 super.assertTrue(node.read && node.select); 66 } 67 68 static class TestMultiValueNode extends MultiValueNode{ 69 70 boolean read, write, select; 71 72 TestMultiValueNode() throws ProcessingException{ 73 super(new HashMap (), new HashMap (), new DefaultNodeFactory()); 74 } 75 76 79 protected Object onSelect(List values) { 80 select = true; 81 return super.onSelect(values); 82 } 83 84 87 protected Object onRead(NamePart np, Object selected) { 88 read = true; 89 return ((TestBinding)selected).bound; 90 } 91 92 95 protected Object onWrite(NamePart np, Object toBind) { 96 write = true; 97 TestBinding bd = new TestBinding(); 98 bd.bound = toBind; 99 return bd; 100 } 101 } 102 103 static class TestBinding{ 104 Object bound; 105 } 106 107 } 108 | Popular Tags |