KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > configuration > AbstractConfigurationImplTest


1 package org.objectweb.celtix.bus.configuration;
2
3
4 import java.io.IOException JavaDoc;
5 import java.lang.reflect.Method JavaDoc;
6 import java.math.BigInteger JavaDoc;
7 import java.util.Collection JavaDoc;
8 import java.util.List JavaDoc;
9
10 import junit.framework.TestCase;
11
12 import org.easymock.classextension.EasyMock;
13 import org.objectweb.celtix.configuration.Configuration;
14 import org.objectweb.celtix.configuration.ConfigurationException;
15 import org.objectweb.celtix.configuration.ConfigurationMetadata;
16 import org.objectweb.celtix.configuration.Configurator;
17 import org.objectweb.celtix.configuration.impl.AbstractConfigurationImpl;
18 import org.objectweb.celtix.configuration.impl.DefaultConfigurationProviderFactory;
19
20
21 public class AbstractConfigurationImplTest extends TestCase {
22
23     private final Configuration top;
24
25     public AbstractConfigurationImplTest(String JavaDoc name) {
26         super(name);
27         top = new TopConfigurationBuilder().build("top");
28     }
29     
30     public void testDefaultConfigurationProviderFactory() throws NoSuchMethodException JavaDoc, IOException JavaDoc {
31         Method JavaDoc m = DefaultConfigurationProviderFactory.class
32             .getDeclaredMethod("getDefaultProviderClassName");
33         DefaultConfigurationProviderFactory factory =
34             EasyMock.createMock(DefaultConfigurationProviderFactory.class, new Method JavaDoc[] {m});
35         factory.getDefaultProviderClassName();
36         org.easymock.EasyMock.expectLastCall().andReturn("org.objectweb.celtix.some.Unknown");
37         EasyMock.replay(factory);
38         try {
39             factory.createDefaultProvider(null);
40             fail("Expected ConfigurationException not thrown.");
41         } catch (ConfigurationException ex) {
42             assertEquals("DEFAULT_PROVIDER_INSTANTIATION_EXC", ex.getCode());
43         }
44
45         factory = DefaultConfigurationProviderFactory.getInstance();
46         assertNotNull(factory.createDefaultProvider(null));
47     }
48     
49     public void testConstruction() {
50         assertNotNull(top);
51         ConfigurationMetadata model = top.getModel();
52         assertNotNull(model);
53         assertEquals(18, model.getDefinitions().size());
54     }
55     
56     public void testConfigurators() {
57         AbstractConfigurationImpl topConfiguration =
58             (AbstractConfigurationImpl)new TopConfigurationBuilder().build("TOP");
59         Configurator topConfigurator = topConfiguration.getConfigurator();
60         assertNotNull(topConfigurator);
61         assertTrue(topConfiguration == topConfigurator.getConfiguration());
62         assertNull(topConfigurator.getHook());
63         Collection JavaDoc<Configurator> topClients = topConfigurator.getClients();
64         assertEquals(0, topClients.size());
65         
66         AbstractConfigurationImpl leafConfiguration =
67             (AbstractConfigurationImpl)new LeafConfigurationBuilder().build(topConfiguration, "LEAF");
68         assertEquals(1, topClients.size());
69         Configurator leafConfigurator = leafConfiguration.getConfigurator();
70         assertNotNull(leafConfigurator);
71         assertTrue(leafConfiguration == leafConfigurator.getConfiguration());
72         Configurator hook = leafConfigurator.getHook();
73         assertNotNull(hook);
74         assertTrue(hook == topConfigurator);
75         Collection JavaDoc<Configurator> leafClients = leafConfigurator.getClients();
76         assertEquals(0, leafClients.size());
77         
78         Object JavaDoc cidTop = topConfiguration.getId();
79         assertEquals("TOP", cidTop.toString());
80         
81         Object JavaDoc cidLeaf = leafConfiguration.getId();
82         assertEquals("LEAF", cidLeaf.toString());
83         
84         assertTrue(cidTop.equals(cidTop));
85         assertTrue(!cidTop.equals(cidLeaf));
86         assertTrue(!cidTop.equals(this));
87         
88         assertTrue(!cidTop.toString().equals(cidLeaf.toString()));
89         assertTrue(cidTop.hashCode() != cidLeaf.hashCode());
90      
91         
92         topConfigurator.unregisterClient(leafConfigurator);
93         assertEquals(0, topClients.size());
94         assertNotNull(leafConfigurator.getHook());
95         
96     }
97      
98     public void testUndefined() {
99         try {
100             top.getObject("undefinedStringItem");
101         } catch (ConfigurationException ex) {
102             assertEquals("ITEM_NOT_DEFINED_EXC", ex.getCode());
103         }
104     }
105     
106     
107     public void testNoDefaults() {
108         
109         assertNull(top.getObject("booleanItemNoDefault"));
110         try {
111             top.getBoolean("booleanItemNoDefault");
112         } catch (ConfigurationException ex) {
113             assertEquals("ITEM_NO_VALUE_EXC", ex.getCode());
114         }
115         assertNull(top.getObject("shortItemNoDefault"));
116         try {
117             top.getShort("shortItemNoDefault");
118         } catch (ConfigurationException ex) {
119             assertEquals("ITEM_NO_VALUE_EXC", ex.getCode());
120         }
121         assertNull(top.getObject("intItemNoDefault"));
122         try {
123             top.getInt("integerItemNoDefault");
124         } catch (ConfigurationException ex) {
125             assertEquals("ITEM_NO_VALUE_EXC", ex.getCode());
126         }
127         assertNull(top.getObject("longItemNoDefault"));
128         try {
129             top.getLong("longItemNoDefault");
130         } catch (ConfigurationException ex) {
131             assertEquals("ITEM_NO_VALUE_EXC", ex.getCode());
132         }
133         assertNull(top.getObject("floatItemNoDefault"));
134         try {
135             top.getFloat("floatItemNoDefault");
136         } catch (ConfigurationException ex) {
137             assertEquals("ITEM_NO_VALUE_EXC", ex.getCode());
138         }
139         assertNull(top.getObject("doubleItemNoDefault"));
140         try {
141             top.getDouble("doubleItemNoDefault");
142         } catch (ConfigurationException ex) {
143             assertEquals("ITEM_NO_VALUE_EXC", ex.getCode());
144         }
145         assertNull(top.getObject("stringItemNoDefault"));
146         try {
147             top.getObject("stringItemNoDefault");
148         } catch (ConfigurationException ex) {
149             assertEquals("ITEM_NO_VALUE_EXC", ex.getCode());
150         }
151         assertNull(top.getObject("stringListItemNoDefault"));
152     }
153     
154     public void testDefaults() {
155         Object JavaDoc value = null;
156         assertNotNull(top.getObject("booleanItem"));
157         assertTrue(top.getBoolean("booleanItem"));
158         assertNotNull(top.getObject("shortItem"));
159         assertEquals(3, top.getShort("shortItem"));
160         assertNotNull(top.getObject("intItem"));
161         assertEquals(44959, top.getInt("intItem"));
162         value = top.getObject("integerItem");
163         assertNotNull(value);
164         assertEquals(44959, ((BigInteger JavaDoc)value).intValue());
165         assertNotNull(top.getObject("longItem"));
166         assertEquals(-99, top.getLong("longItem"));
167         assertNotNull(top.getObject("floatItem"));
168         assertTrue(Math.abs(1234.5678 - top.getFloat("floatItem")) < 0.5E-3);
169         assertNotNull(top.getObject("doubleItem"));
170         assertTrue(Math.abs(1234.5678 - top.getDouble("doubleItem")) < 0.5E-5);
171         assertNotNull(top.getObject("stringItem"));
172         assertEquals("\"Hello World!\"", top.getString("stringItem"));
173         value = top.getObject("stringListItem");
174         assertNotNull(value);
175         List JavaDoc<String JavaDoc> l = top.getStringList("stringListItem");
176         assertNotNull(l);
177         assertEquals(3, l.size());
178         assertEquals("a", l.get(0));
179         assertEquals("b", l.get(1));
180         assertEquals("c", l.get(2));
181     }
182     
183     public void testTypeMismatch() {
184         try {
185             top.getStringList("booleanItem");
186         } catch (ConfigurationException ex) {
187             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
188         }
189         try {
190             top.getBoolean("shortItem");
191         } catch (ConfigurationException ex) {
192             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
193         }
194         try {
195             top.getShort("intItem");
196         } catch (ConfigurationException ex) {
197             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
198         }
199         try {
200             top.getInt("integerItem");
201         } catch (ConfigurationException ex) {
202             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
203         }
204         try {
205             top.getLong("doubleItem");
206         } catch (ConfigurationException ex) {
207             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
208         }
209         try {
210             top.getDouble("stringItem");
211         } catch (ConfigurationException ex) {
212             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
213         }
214         try {
215             top.getString("stringListItem");
216         } catch (ConfigurationException ex) {
217             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
218         }
219     }
220
221     public void testTypeMismatchWrite() {
222         try {
223             top.setBoolean("shortItem", true);
224         } catch (ConfigurationException ex) {
225             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
226         }
227         try {
228             top.setShort("intItem", (short)99);
229         } catch (ConfigurationException ex) {
230             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
231         }
232         try {
233             top.setInt("integerItem", 99);
234         } catch (ConfigurationException ex) {
235             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
236         }
237         try {
238             top.setLong("doubleItem", 99);
239         } catch (ConfigurationException ex) {
240             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
241         }
242         try {
243             top.setDouble("stringItem", 99.9);
244         } catch (ConfigurationException ex) {
245             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
246         }
247         try {
248             top.setString("stringListItem", "testString");
249         } catch (ConfigurationException ex) {
250             assertEquals("ITEM_TYPE_MISMATCH_EXC", ex.getCode());
251         }
252     }
253     
254 }
255
256
Popular Tags