KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > configuration > spring > ConfigurationProviderImplTest


1 package org.objectweb.celtix.bus.configuration.spring;
2
3 import java.math.BigInteger JavaDoc;
4 import java.net.MalformedURLException JavaDoc;
5 import java.net.URL JavaDoc;
6 import java.util.List JavaDoc;
7 import java.util.Properties JavaDoc;
8
9 import junit.framework.TestCase;
10
11 import org.objectweb.celtix.bus.configuration.LeafConfigurationBuilder;
12 import org.objectweb.celtix.bus.configuration.TopConfigurationBuilder;
13 import org.objectweb.celtix.configuration.Configuration;
14 import org.objectweb.celtix.configuration.ConfigurationException;
15 import org.objectweb.celtix.configuration.ConfigurationProvider;
16 import org.objectweb.celtix.configuration.types.StringListType;
17
18 public class ConfigurationProviderImplTest extends TestCase {
19
20     private String JavaDoc originalConfigFile;
21
22     public void setUp() {
23         originalConfigFile = System.getProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME);
24     }
25
26     public void tearDown() {
27         if (null == originalConfigFile) {
28             Properties JavaDoc properties = System.getProperties();
29             properties.remove(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME);
30             System.setProperties(properties);
31         } else {
32             System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, originalConfigFile);
33         }
34         ConfigurationProviderImpl.getBeanFactories().clear();
35     }
36
37     public void testInvalidBeanDefinitionsResourceURL() {
38         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, "resources\top1.xml");
39         try {
40             new TopConfigurationBuilder().build("top");
41         } catch (ConfigurationException ex) {
42             assertEquals("MALFORMED_URL_PROPERTY", ex.getCode());
43         }
44     }
45
46     public void testNoBeanDefinitionsFile() {
47         Configuration top = new TopConfigurationBuilder().build("top");
48         List JavaDoc<ConfigurationProvider> providers = top.getProviders();
49         assertEquals(1, providers.size());
50         assertTrue(providers.get(0) instanceof ConfigurationProviderImpl);
51         ConfigurationProviderImpl cpi = (ConfigurationProviderImpl)providers.get(0);
52         assertNull(cpi.getBean());
53     }
54
55     public void testInvalidBeanDefinitionFile() {
56         URL JavaDoc url = ConfigurationProviderImplTest.class.getResource("resources/top-invalid.xml");
57         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, url.toExternalForm());
58         new TopConfigurationBuilder().build("top");
59         assertNull(ConfigurationProviderImpl.getBeanFactories().get(url));
60     }
61
62     public void testBeanClassNotFound() {
63
64         URL JavaDoc url = ConfigurationProviderImplTest.class.getResource("resources/top-wrong-class.xml");
65         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, url.toExternalForm());
66
67         // The non-existing class is detected when the bean factory is initialised - not
68
// later when the bean is created.
69

70         new TopConfigurationBuilder().build("top");
71         assertNull(ConfigurationProviderImpl.getBeanFactories().get(url));
72     }
73
74     public void testNoSuchBean() {
75
76         URL JavaDoc url = ConfigurationProviderImplTest.class.getResource("resources/top1.xml");
77         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, url.toExternalForm());
78
79         Configuration top = new TopConfigurationBuilder().build("top2");
80
81         List JavaDoc<ConfigurationProvider> providers = top.getProviders();
82         assertEquals(1, providers.size());
83
84         ConfigurationProviderImpl cpi = (ConfigurationProviderImpl)providers.get(0);
85         assertNull(cpi.getBean());
86
87
88     }
89
90     public void testDefaultBeanCreation() throws MalformedURLException JavaDoc {
91         URL JavaDoc url = ConfigurationProviderImplTest.class.getResource("resources/top1.xml");
92         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, url.toExternalForm());
93
94         Configuration top = new TopConfigurationBuilder().build("top1");
95         List JavaDoc<ConfigurationProvider> providers = top.getProviders();
96         assertEquals(1, providers.size());
97         assertTrue(providers.get(0) instanceof ConfigurationProviderImpl);
98     }
99
100     public void testBeanCreationUsingValueAsText() throws MalformedURLException JavaDoc {
101         URL JavaDoc url = ConfigurationProviderImplTest.class.getResource("resources/top2.xml");
102         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, url.toExternalForm());
103         Configuration top = new TopConfigurationBuilder().build("top2");
104
105         List JavaDoc<ConfigurationProvider> providers = top.getProviders();
106         assertEquals(1, providers.size());
107         assertTrue(providers.get(0) instanceof ConfigurationProviderImpl);
108
109         ConfigurationProviderImpl cpi = (ConfigurationProviderImpl)providers.get(0);
110         Object JavaDoc o;
111
112         o = cpi.getObject("booleanItem");
113         assertTrue(o instanceof Boolean JavaDoc);
114         assertTrue(!((Boolean JavaDoc)o).booleanValue());
115
116         o = cpi.getObject("integerItem");
117         assertTrue(o instanceof BigInteger JavaDoc);
118         assertEquals(1997, ((BigInteger JavaDoc)o).intValue());
119
120         o = cpi.getObject("longItem");
121         assertNull(o);
122
123         o = cpi.getObject("doubleItem");
124         assertTrue(o instanceof Double JavaDoc);
125         assertTrue(Math.abs(((Double JavaDoc)o).doubleValue() - 9876.54321) < 0.5E-5);
126
127         o = cpi.getObject("stringItem");
128         assertTrue(o instanceof String JavaDoc);
129         assertEquals("not the default", (String JavaDoc)o);
130
131         try {
132             cpi.getObject("noItem");
133         } catch (ConfigurationException ex) {
134             assertEquals("BEAN_INCOVATION_EXC", ex.getCode());
135         }
136     }
137
138     public void testBeanCreationUsingValueAsElements() throws MalformedURLException JavaDoc {
139         URL JavaDoc url = ConfigurationProviderImplTest.class.getResource("resources/top2.xml");
140         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, url.toExternalForm());
141         Configuration top = new TopConfigurationBuilder().build("top22");
142
143         List JavaDoc<ConfigurationProvider> providers = top.getProviders();
144         assertEquals(1, providers.size());
145         assertTrue(providers.get(0) instanceof ConfigurationProviderImpl);
146
147         ConfigurationProviderImpl cpi = (ConfigurationProviderImpl)providers.get(0);
148         Object JavaDoc o;
149
150         o = cpi.getObject("booleanItem");
151         assertTrue(o instanceof Boolean JavaDoc);
152         assertTrue(!((Boolean JavaDoc)o).booleanValue());
153
154         o = cpi.getObject("integerItem");
155         assertTrue(o instanceof BigInteger JavaDoc);
156         assertEquals(1997, ((BigInteger JavaDoc)o).intValue());
157
158         o = cpi.getObject("longItem");
159         assertTrue(o instanceof Long JavaDoc);
160         assertEquals(99, ((Long JavaDoc)o).longValue());
161
162         o = cpi.getObject("doubleItem");
163         assertTrue(o instanceof Double JavaDoc);
164         assertTrue(Math.abs(((Double JavaDoc)o).doubleValue() - 9876.54321) < 0.5E-5);
165
166         o = cpi.getObject("stringItem");
167         assertTrue(o instanceof String JavaDoc);
168         assertEquals("not the default", (String JavaDoc)o);
169
170         o = cpi.getObject("stringListItem");
171         assertTrue(o instanceof StringListType);
172
173         List JavaDoc<String JavaDoc> l = ((StringListType)o).getItem();
174         assertNotNull(l);
175         assertEquals(2, l.size());
176         assertEquals("something", l.get(0));
177         assertEquals("else", l.get(1));
178
179     }
180
181     public void testBeanCreationSimpleHierarchy() {
182         URL JavaDoc url = ConfigurationProviderImplTest.class.getResource("resources/top2.xml");
183         System.setProperty(ConfigurationProviderImpl.CONFIG_FILE_PROPERTY_NAME, url.toExternalForm());
184
185         Configuration top = new TopConfigurationBuilder().build("top2");
186         Configuration leaf = new LeafConfigurationBuilder().build(top, "leaf");
187
188         List JavaDoc<ConfigurationProvider> providers = leaf.getProviders();
189         assertEquals(1, providers.size());
190
191
192         Object JavaDoc o = providers.get(0).getObject("stringLeafItem");
193         assertTrue(o instanceof String JavaDoc);
194         assertEquals("Don't fear the reaper", (String JavaDoc)o);
195
196         o = providers.get(0).getObject("longLeafItemNoDefault");
197         assertEquals(99, ((Long JavaDoc)o).longValue());
198     }
199
200 }
201
Popular Tags