KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > values > types > MapTypeTest


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.values.types;
5
6 import java.util.HashMap JavaDoc;
7 import java.util.Map JavaDoc;
8 import java.util.Properties JavaDoc;
9
10 import junit.framework.TestCase;
11
12 import org.oddjob.Oddjob;
13 import org.oddjob.arooa.ArooaFactory;
14 import org.oddjob.arooa.PropertyProxyResolver;
15 import org.oddjob.arooa.SimpleObjectFactory;
16
17 /**
18  *
19  */

20 public class MapTypeTest extends TestCase {
21
22     abstract public static class MyBean {
23         Map JavaDoc map;
24     }
25
26     public static class MyMapBean extends MyBean {
27         public void setFoo(Map JavaDoc map) {
28             this.map = map;
29         }
30     }
31
32     public static class MyMappedBean extends MyBean {
33         public MyMappedBean() { map = new HashMap JavaDoc(); }
34         public void setFoo(String JavaDoc name, Object JavaDoc value) {
35             map.put(name, value);
36         }
37     }
38     
39     // test set Map property
40
public void test1() throws Exception JavaDoc {
41         MyBean mb = createBean(xml(MyMapBean.class.getName()));
42         assertEquals("hello world", (String JavaDoc) mb.map.get("greeting"));
43         assertEquals("apples", (String JavaDoc) mb.map.get("fruit"));
44         assertEquals(System.getProperty("java.version"), mb.map.get("java.version"));
45         assertEquals(Oddjob.class.getName(), mb.map.get("oddjob"));
46     }
47
48     // test set Mapped property.
49
public void test2() throws Exception JavaDoc {
50         MyBean mb = createBean(xml(MyMappedBean.class.getName()));
51         assertEquals("hello world", (String JavaDoc) mb.map.get("greeting"));
52         assertEquals("apples", (String JavaDoc) mb.map.get("fruit"));
53         assertEquals(System.getProperty("java.version"), mb.map.get("java.version"));
54         assertEquals(Oddjob.class.getName(), mb.map.get("oddjob"));
55     }
56     
57     public void testMapMap() throws Exception JavaDoc {
58         String JavaDoc xml = "<mybean class='" + MyMappedBean.class.getName() + "'>"
59         + "<foo>"
60         + " <map name='another'/>"
61         + "</foo>"
62         + "</mybean>";
63         
64         MyBean mb = createBean(xml);
65         
66         assertTrue(Map JavaDoc.class.isInstance(mb.map.get("another")));
67         System.out.println(mb.map.get("another").getClass());
68         System.out.println(mb.map.get("another"));
69         assertEquals(0, ((Map JavaDoc)mb.map.get("another")).size());
70     }
71     
72     static MyBean createBean(String JavaDoc xml) {
73         ArooaFactory af = new ArooaFactory();
74         SimpleObjectFactory vf = new SimpleObjectFactory();
75         vf.addResource("/org/oddjob/values/types.properties");
76         PropertyProxyResolver tm = new PropertyProxyResolver();
77         tm.addResource("/org/oddjob/values/proxies.properties");
78         
79         af.setValueFactory(vf);
80         af.setPropertProxyResolver(tm);
81         
82         return (MyBean) af.build(xml);
83     }
84     
85     static String JavaDoc xml(String JavaDoc className) {
86         return "<mybean class='" + className + "'>"
87         + "<foo>"
88         + " <value name='greeting' value='hello world'/>"
89         + " <system name='java.version'/>"
90         + " <map><value name='fruit' value='apples'/></map>"
91         + " <properties file='src/java/org/oddjob/oddjob.properties'/>"
92         + "</foo>"
93         + "</mybean>";
94     
95
96     }
97     
98     public void testProperties() {
99         MapType mt = new MapType();
100         mt.setValue("fruit", "apples");
101         mt.setValue("veg", "potatoes");
102         
103         Properties JavaDoc props = (Properties JavaDoc) mt.valueFor(Properties JavaDoc.class);
104         assertEquals("apples", props.get("fruit"));
105     }
106 }
107
Popular Tags