KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > archie > MultiValueNodeTest


1 /*
2  * Created on 25-Feb-2004
3  */

4 package org.sapia.archie;
5
6 import java.util.HashMap JavaDoc;
7 import java.util.List JavaDoc;
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 /**
16  * @author Yanick Duchesne
17  *
18  * <dl>
19  * <dt><b>Copyright:</b><dd>Copyright &#169; 2002-2003 <a HREF="http://www.sapia-oss.org">Sapia Open Source Software</a>. All Rights Reserved.</dd></dt>
20  * <dt><b>License:</b><dd>Read the license.txt file of the jar or visit the
21  * <a HREF="http://www.sapia-oss.org/license.html">license page</a> at the Sapia OSS web site</dd></dt>
22  * </dl>
23  */

24 public class MultiValueNodeTest extends TestCase {
25   
26   /**
27    * @param arg0
28    */

29   public MultiValueNodeTest(String JavaDoc arg0) {
30     super(arg0);
31   }
32   
33   public void testPutGetValue() throws Exception JavaDoc{
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 JavaDoc{
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 JavaDoc{
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 JavaDoc(), new HashMap JavaDoc(), new DefaultNodeFactory());
74     }
75     
76     /**
77      * @see org.sapia.archie.impl.MultiValueNode#onSelect(java.util.List)
78      */

79     protected Object JavaDoc onSelect(List JavaDoc values) {
80       select = true;
81       return super.onSelect(values);
82     }
83     
84     /**
85      * @see org.sapia.archie.impl.MultiValueNode#onRead(org.sapia.archie.NamePart, java.lang.Object)
86      */

87     protected Object JavaDoc onRead(NamePart np, Object JavaDoc selected) {
88       read = true;
89       return ((TestBinding)selected).bound;
90     }
91     
92     /**
93      * @see org.sapia.archie.impl.MultiValueNode#onWrite(org.sapia.archie.NamePart, java.lang.Object)
94      */

95     protected Object JavaDoc onWrite(NamePart np, Object JavaDoc 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 JavaDoc bound;
105   }
106
107 }
108
Popular Tags