Commit 8e8fc827bd18cd3a676826be45686b4e8e4f9436

Authored by Thiago Mariano
1 parent 6674b267
Exists in master

Refatoração dos testes unitários do Configuration.

impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java
@@ -82,7 +82,7 @@ public class ConfigurationLoader implements Serializable { @@ -82,7 +82,7 @@ public class ConfigurationLoader implements Serializable {
82 private static ResourceBundle bundle; 82 private static ResourceBundle bundle;
83 83
84 private static Logger logger; 84 private static Logger logger;
85 - 85 +
86 /** 86 /**
87 * Loads a config class filling it with the corresponding values. 87 * Loads a config class filling it with the corresponding values.
88 * 88 *
impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoaderTest.java
1 -///*  
2 -// * Demoiselle Framework  
3 -// * Copyright (C) 2010 SERPRO  
4 -// * ----------------------------------------------------------------------------  
5 -// * This file is part of Demoiselle Framework.  
6 -// *  
7 -// * Demoiselle Framework is free software; you can redistribute it and/or  
8 -// * modify it under the terms of the GNU Lesser General Public License version 3  
9 -// * as published by the Free Software Foundation.  
10 -// *  
11 -// * This program is distributed in the hope that it will be useful,  
12 -// * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 -// * GNU General Public License for more details.  
15 -// *  
16 -// * You should have received a copy of the GNU Lesser General Public License version 3  
17 -// * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 -// * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 -// * Fifth Floor, Boston, MA 02110-1301, USA.  
20 -// * ----------------------------------------------------------------------------  
21 -// * Este arquivo é parte do Framework Demoiselle.  
22 -// *  
23 -// * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 -// * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 -// * do Software Livre (FSF).  
26 -// *  
27 -// * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 -// * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 -// * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 -// * para maiores detalhes.  
31 -// *  
32 -// * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 -// * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 -// * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 -// * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 -// */  
37 -//package br.gov.frameworkdemoiselle.internal.configuration;  
38 -//  
39 -//import static org.easymock.EasyMock.expect;  
40 -//import static org.junit.Assert.assertEquals;  
41 -//import static org.junit.Assert.assertNull;  
42 -//import static org.junit.Assert.assertTrue;  
43 -//import static org.junit.Assert.fail;  
44 -//import static org.powermock.api.easymock.PowerMock.mockStatic;  
45 -//  
46 -//import javax.validation.constraints.NotNull;  
47 -//  
48 -//import org.junit.After;  
49 -//import org.junit.Before;  
50 -//import org.junit.Test;  
51 -//import org.junit.runner.RunWith;  
52 -//import org.powermock.api.easymock.PowerMock;  
53 -//import org.powermock.core.classloader.annotations.PrepareForTest;  
54 -//import org.powermock.modules.junit4.PowerMockRunner;  
55 -//import org.powermock.reflect.Whitebox;  
56 -//import org.slf4j.Logger;  
57 -//  
58 -//import br.gov.frameworkdemoiselle.annotation.Ignore;  
59 -//import br.gov.frameworkdemoiselle.annotation.Name;  
60 -//import br.gov.frameworkdemoiselle.configuration.ConfigType;  
61 -//import br.gov.frameworkdemoiselle.configuration.Configuration;  
62 -//import br.gov.frameworkdemoiselle.configuration.ConfigurationException;  
63 -//import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap;  
64 -//import br.gov.frameworkdemoiselle.util.ResourceBundle;  
65 -//  
66 -//@RunWith(PowerMockRunner.class)  
67 -//@PrepareForTest(CoreBootstrap.class)  
68 -//public class ConfigurationLoaderTest {  
69 -//  
70 -// private ConfigurationLoader configurationLoader;  
71 -//  
72 -// @Configuration  
73 -// public class ConfigurationSuccessfulProperties {  
74 -//  
75 -// @Name("frameworkdemoiselle.configurationtest.nameConfiguration")  
76 -// protected String nameConfiguration;  
77 -//  
78 -// }  
79 -//  
80 -// @Configuration  
81 -// public class ConfigurationSuccessfulProperties2 {  
82 -//  
83 -// @Name("frameworkdemoiselle.configurationtest.name")  
84 -// protected String name;  
85 -//  
86 -// }  
87 -//  
88 -// @Configuration(resource = "absentFile")  
89 -// public class ConfigurationPropertiesWithAbsentFile {  
90 -//  
91 -// @Name("frameworkdemoiselle.configurationtest.nameConfiguration")  
92 -// protected String nameConfiguration;  
93 -//  
94 -// }  
95 -//  
96 -// @Configuration  
97 -// public class ConfigurationWithEmptyName {  
98 -//  
99 -// @Name("")  
100 -// protected String nameConfiguration;  
101 -//  
102 -// }  
103 -//  
104 -// @Configuration  
105 -// public class ConfigurationWithoutNameAnnotation {  
106 -//  
107 -// protected String nameConfiguration;  
108 -//  
109 -// }  
110 -//  
111 -// @Configuration  
112 -// public class ConfigurationWithIgnoreAnnotation {  
113 -//  
114 -// @Ignore  
115 -// protected String nameConfiguration;  
116 -//  
117 -// }  
118 -//  
119 -// @Configuration(prefix = "frameworkdemoiselle.configurationtest")  
120 -// public class ConfigurationWithPrefix {  
121 -//  
122 -// @Name("nameConfiguration")  
123 -// protected String nameConfiguration;  
124 -//  
125 -// }  
126 -//  
127 -// @Configuration  
128 -// public class ConfigurationWithKeyNotFoundInProperties {  
129 -//  
130 -// protected Integer notExistKey;  
131 -// }  
132 -//  
133 -// @Configuration  
134 -// public class ConfigurationWithNotNullFieldButValueIsNull {  
135 -//  
136 -// @Name("notexistKey")  
137 -// @NotNull  
138 -// protected int nameConfiguration;  
139 -//  
140 -// }  
141 -//  
142 -// @Configuration  
143 -// public class ConfigurationWithNotNullFieldAndValueIsNotNull {  
144 -//  
145 -// @Name("nameConfiguration")  
146 -// @NotNull  
147 -// protected String nameConfiguration;  
148 -//  
149 -// }  
150 -//  
151 -// @Configuration  
152 -// public class ConfigurationWithNonPrimitiveFieldValueNull {  
153 -//  
154 -// @Name("notexistKey")  
155 -// protected String nameConfiguration;  
156 -//  
157 -// }  
158 -//  
159 -// @Configuration  
160 -// public class ConfigurationWithPrimitiveFieldValueNull {  
161 -//  
162 -// @Name("notexistKey")  
163 -// protected int nameConfiguration = 1;  
164 -//  
165 -// }  
166 -//  
167 -// @Configuration(type = ConfigType.SYSTEM)  
168 -// public class ConfigurationWithKeyFromSystem {  
169 -//  
170 -// @Name("os.name")  
171 -// protected String nameConfiguration;  
172 -//  
173 -// }  
174 -//  
175 -// @Configuration(type = ConfigType.XML)  
176 -// public class ConfigurationWithKeyFromXML {  
177 -//  
178 -// @Name("nameConfiguration")  
179 -// protected String nameConfiguration;  
180 -//  
181 -// }  
182 -//  
183 -// @Configuration(type = ConfigType.XML, prefix = "br.gov.frameworkdemoiselle")  
184 -// public class ConfigurationFromXMLWithPrefix {  
185 -//  
186 -// @Name("nameConfiguration")  
187 -// protected String nameConfiguration;  
188 -//  
189 -// }  
190 -//  
191 -// @Configuration  
192 -// public class ConfigurationPropertiesWithTwoAmbiguousKey {  
193 -//  
194 -// protected String twoConfiguration;  
195 -//  
196 -// }  
197 -//  
198 -// @Configuration  
199 -// public class ConfigurationPropertiesWithThreeAmbiguousKey {  
200 -//  
201 -// protected String threeConfiguration;  
202 -//  
203 -// }  
204 -//  
205 -// @Configuration  
206 -// public class ConfigurationPropertiesWithFourAmbiguousKey {  
207 -//  
208 -// protected String fourConfiguration;  
209 -//  
210 -// }  
211 -//  
212 -// @Configuration  
213 -// public class ConfigurationWithConventionUnderline {  
214 -//  
215 -// protected String conventionUnderline;  
216 -//  
217 -// }  
218 -//  
219 -// @Configuration(type = ConfigType.XML)  
220 -// public class ConfigurationXMLWithConventionUnderline {  
221 -//  
222 -// protected String conventionUnderline;  
223 -//  
224 -// }  
225 -//  
226 -// @Configuration  
227 -// public class ConfigurationWithConventionDot {  
228 -//  
229 -// protected String conventionDot;  
230 -//  
231 -// }  
232 -//  
233 -// @Configuration(type = ConfigType.XML)  
234 -// public class ConfigurationXMLWithConventionDot {  
235 -//  
236 -// protected String conventionDot;  
237 -//  
238 -// }  
239 -//  
240 -// @Configuration  
241 -// public class ConfigurationWithConventionAllUpperCase {  
242 -//  
243 -// protected String conventionAllUpperCase;  
244 -//  
245 -// }  
246 -//  
247 -// @Configuration(type = ConfigType.XML)  
248 -// public class ConfigurationXMLWithConventionAllUpperCase {  
249 -//  
250 -// protected String conventionAllUpperCase;  
251 -//  
252 -// }  
253 -//  
254 -// @Configuration  
255 -// public class ConfigurationWithConventionAllLowerCase {  
256 -//  
257 -// protected String conventionAllLowerCase;  
258 -//  
259 -// }  
260 -//  
261 -// @Configuration(type = ConfigType.XML)  
262 -// public class ConfigurationXMLWithConventionAllLowerCase {  
263 -//  
264 -// protected String conventionAllLowerCase;  
265 -//  
266 -// }  
267 -//  
268 -// @Configuration(prefix = "br.gov.frameworkdemoiselle")  
269 -// public class ConfigurationPropertiesSuccessWithPrefixNonAmbiguous {  
270 -//  
271 -// protected String success;  
272 -//  
273 -// }  
274 -//  
275 -// @Configuration  
276 -// public class ConfigurationPropertiesErrorWithComplexObject {  
277 -//  
278 -// protected ConfigurationWithConventionAllLowerCase complexObject;  
279 -// }  
280 -//  
281 -// @Before  
282 -// public void setUp() throws Exception {  
283 -// Logger logger;  
284 -// ResourceBundle bundle;  
285 -// logger = PowerMock.createMock(Logger.class);  
286 -// bundle = new ResourceBundle(ResourceBundle.getBundle("demoiselle-core-bundle"));  
287 -// configurationLoader = new ConfigurationLoader();  
288 -// Whitebox.setInternalState(this.configurationLoader, "bundle", bundle);  
289 -// Whitebox.setInternalState(this.configurationLoader, "logger", logger);  
290 -// }  
291 -//  
292 -// @After  
293 -// public void tearDown() throws Exception {  
294 -// }  
295 -//  
296 -// @Test  
297 -// public void testConfigurationSuccessfulPropertiesPossibleConventions() {  
298 -// ConfigurationSuccessfulProperties config = new ConfigurationSuccessfulProperties();  
299 -//  
300 -// mockStatic(CoreBootstrap.class);  
301 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
302 -// PowerMock.replay(CoreBootstrap.class);  
303 -//  
304 -// configurationLoader.load(config);  
305 -// assertEquals("ConfigurationTest", config.nameConfiguration);  
306 -//  
307 -// }  
308 -//  
309 -// @Test  
310 -// public void testConfigurationSuccessfulPropertiesNoConventions() {  
311 -// ConfigurationSuccessfulProperties2 config = new ConfigurationSuccessfulProperties2();  
312 -//  
313 -// mockStatic(CoreBootstrap.class);  
314 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
315 -// PowerMock.replay(CoreBootstrap.class);  
316 -//  
317 -// configurationLoader.load(config);  
318 -// assertEquals("ConfigurationTest2", config.name);  
319 -// }  
320 -//  
321 -// @Test  
322 -// public void ConfigurationPropertiesWithAbsentFile() {  
323 -// ConfigurationPropertiesWithAbsentFile config = new ConfigurationPropertiesWithAbsentFile();  
324 -//  
325 -// mockStatic(CoreBootstrap.class);  
326 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
327 -// PowerMock.replay(CoreBootstrap.class);  
328 -//  
329 -// try {  
330 -// configurationLoader.load(config);  
331 -// fail();  
332 -// } catch (Exception e) {  
333 -// }  
334 -// }  
335 -//  
336 -// @Test  
337 -// public void testConfigurationProcessorWithNameEmpty() {  
338 -// ConfigurationWithEmptyName config = new ConfigurationWithEmptyName();  
339 -//  
340 -// mockStatic(CoreBootstrap.class);  
341 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
342 -// PowerMock.replay(CoreBootstrap.class);  
343 -//  
344 -// try {  
345 -// configurationLoader.load(config);  
346 -// fail();  
347 -// } catch (Exception e) {  
348 -// }  
349 -// }  
350 -//  
351 -// @Test  
352 -// public void testConfigurationWithoutNameAnnotation() {  
353 -// ConfigurationWithoutNameAnnotation config = new ConfigurationWithoutNameAnnotation();  
354 -//  
355 -// mockStatic(CoreBootstrap.class);  
356 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
357 -// PowerMock.replay(CoreBootstrap.class);  
358 -//  
359 -// configurationLoader.load(config);  
360 -// assertEquals("ConfigurationTest", config.nameConfiguration);  
361 -// }  
362 -//  
363 -// @Test  
364 -// public void testConfigurationWithIgnoreAnnotation() {  
365 -// ConfigurationWithIgnoreAnnotation config = new ConfigurationWithIgnoreAnnotation();  
366 -//  
367 -// configurationLoader.load(config);  
368 -// assertNull(config.nameConfiguration);  
369 -// }  
370 -//  
371 -// @Test  
372 -// public void testConfigurationWithPrefix() {  
373 -// ConfigurationWithPrefix config = new ConfigurationWithPrefix();  
374 -//  
375 -// mockStatic(CoreBootstrap.class);  
376 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
377 -// PowerMock.replay(CoreBootstrap.class);  
378 -//  
379 -// configurationLoader.load(config);  
380 -// assertEquals("ConfigurationTest", config.nameConfiguration);  
381 -// }  
382 -//  
383 -// @Test  
384 -// public void testConfigurationWithKeyNotFoundInProperties() {  
385 -// ConfigurationWithKeyNotFoundInProperties config = new ConfigurationWithKeyNotFoundInProperties();  
386 -//  
387 -// configurationLoader.load(config);  
388 -// assertNull(config.notExistKey);  
389 -// }  
390 -//  
391 -// @Test  
392 -// public void testConfigurationWithNotNullFieldButValueIsNull() {  
393 -// ConfigurationWithNotNullFieldButValueIsNull config = new ConfigurationWithNotNullFieldButValueIsNull();  
394 -//  
395 -// mockStatic(CoreBootstrap.class);  
396 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
397 -// PowerMock.replay(CoreBootstrap.class);  
398 -//  
399 -// try {  
400 -// configurationLoader.load(config);  
401 -// fail();  
402 -// } catch (Exception e) {  
403 -// assertTrue(true);  
404 -// }  
405 -// }  
406 -//  
407 -// @Test  
408 -// public void testConfigurationWithNotNullFieldAndValueIsNotNull() {  
409 -// ConfigurationWithNotNullFieldAndValueIsNotNull config = new ConfigurationWithNotNullFieldAndValueIsNotNull();  
410 -//  
411 -// mockStatic(CoreBootstrap.class);  
412 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
413 -// PowerMock.replay(CoreBootstrap.class);  
414 -//  
415 -// configurationLoader.load(config);  
416 -// assertEquals("ConfigurationTest", config.nameConfiguration);  
417 -// }  
418 -//  
419 -// @Test  
420 -// public void testConfigurationWithNonPrimitiveFieldValueNull() {  
421 -// ConfigurationWithNonPrimitiveFieldValueNull config = new ConfigurationWithNonPrimitiveFieldValueNull();  
422 -//  
423 -// configurationLoader.load(config);  
424 -// assertNull(config.nameConfiguration);  
425 -// }  
426 -//  
427 -// @Test  
428 -// public void testConfigurationWithPrimitiveFieldValueNull() {  
429 -// ConfigurationWithPrimitiveFieldValueNull config = new ConfigurationWithPrimitiveFieldValueNull();  
430 -//  
431 -// configurationLoader.load(config);  
432 -// assertEquals(1, config.nameConfiguration);  
433 -// }  
434 -//  
435 -// @Test  
436 -// public void testConfigurationWithKeyFromSystem() {  
437 -// ConfigurationWithKeyFromSystem config = new ConfigurationWithKeyFromSystem();  
438 -//  
439 -// mockStatic(CoreBootstrap.class);  
440 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
441 -// PowerMock.replay(CoreBootstrap.class);  
442 -//  
443 -// configurationLoader.load(config);  
444 -// assertEquals(System.getProperty("os.name"), config.nameConfiguration);  
445 -// }  
446 -//  
447 -// @Test  
448 -// public void testConfigurationWithKeyFromXML() {  
449 -// ConfigurationWithKeyFromXML config = new ConfigurationWithKeyFromXML();  
450 -//  
451 -// mockStatic(CoreBootstrap.class);  
452 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
453 -// PowerMock.replay(CoreBootstrap.class);  
454 -//  
455 -// configurationLoader.load(config);  
456 -// assertEquals("ConfigurationTest", config.nameConfiguration);  
457 -// }  
458 -//  
459 -// @Test  
460 -// public void testConfigurationWithTwoAmbiguousKey() {  
461 -// ConfigurationPropertiesWithTwoAmbiguousKey config = new ConfigurationPropertiesWithTwoAmbiguousKey();  
462 -//  
463 -// mockStatic(CoreBootstrap.class);  
464 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
465 -// PowerMock.replay(CoreBootstrap.class);  
466 -//  
467 -// try {  
468 -// configurationLoader.load(config);  
469 -// fail();  
470 -// } catch (Exception e) {  
471 -// assertTrue(e instanceof ConfigurationException);  
472 -// }  
473 -//  
474 -// }  
475 -//  
476 -// @Test  
477 -// public void testConfigurationWithThreeAmbiguousKey() {  
478 -// ConfigurationPropertiesWithThreeAmbiguousKey config = new ConfigurationPropertiesWithThreeAmbiguousKey();  
479 -//  
480 -// mockStatic(CoreBootstrap.class);  
481 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
482 -// PowerMock.replay(CoreBootstrap.class);  
483 -//  
484 -// try {  
485 -// configurationLoader.load(config);  
486 -// fail();  
487 -// } catch (Exception e) {  
488 -// assertTrue(e instanceof ConfigurationException);  
489 -// }  
490 -//  
491 -// }  
492 -//  
493 -// @Test  
494 -// public void testConfigurationWithFourAmbiguousKey() {  
495 -// ConfigurationPropertiesWithFourAmbiguousKey config = new ConfigurationPropertiesWithFourAmbiguousKey();  
496 -//  
497 -// mockStatic(CoreBootstrap.class);  
498 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
499 -// PowerMock.replay(CoreBootstrap.class);  
500 -//  
501 -// try {  
502 -// configurationLoader.load(config);  
503 -// fail();  
504 -// } catch (Exception e) {  
505 -// assertTrue(e instanceof ConfigurationException);  
506 -// }  
507 -//  
508 -// }  
509 -//  
510 -// @Test  
511 -// public void testConfigurationWithPrefixNotAmbiguous() {  
512 -// ConfigurationPropertiesSuccessWithPrefixNonAmbiguous config = new ConfigurationPropertiesSuccessWithPrefixNonAmbiguous();  
513 -//  
514 -// mockStatic(CoreBootstrap.class);  
515 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
516 -// PowerMock.replay(CoreBootstrap.class);  
517 -//  
518 -// configurationLoader.load(config);  
519 -// assertEquals("Success", config.success);  
520 -// }  
521 -//  
522 -// @Test  
523 -// public void testConfigurationWithConventionUnderline() {  
524 -// ConfigurationWithConventionUnderline config = new ConfigurationWithConventionUnderline();  
525 -//  
526 -// mockStatic(CoreBootstrap.class);  
527 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
528 -// PowerMock.replay(CoreBootstrap.class);  
529 -//  
530 -// configurationLoader.load(config);  
531 -// assertEquals("Convention Underline", config.conventionUnderline);  
532 -// }  
533 -//  
534 -// @Test  
535 -// public void testConfigurationWithConventionDot() {  
536 -// ConfigurationWithConventionDot config = new ConfigurationWithConventionDot();  
537 -//  
538 -// mockStatic(CoreBootstrap.class);  
539 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
540 -// PowerMock.replay(CoreBootstrap.class);  
541 -//  
542 -// configurationLoader.load(config);  
543 -// assertEquals("Convention Dot", config.conventionDot);  
544 -// }  
545 -//  
546 -// @Test  
547 -// public void testConfigurationWithConventionAllLowerCase() {  
548 -// ConfigurationWithConventionAllLowerCase config = new ConfigurationWithConventionAllLowerCase();  
549 -//  
550 -// mockStatic(CoreBootstrap.class);  
551 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
552 -// PowerMock.replay(CoreBootstrap.class);  
553 -//  
554 -// configurationLoader.load(config);  
555 -// assertEquals("All LowerCase", config.conventionAllLowerCase);  
556 -// }  
557 -//  
558 -// @Test  
559 -// public void testConfigurationWithConventionAllUpperCase() {  
560 -// ConfigurationWithConventionAllUpperCase config = new ConfigurationWithConventionAllUpperCase();  
561 -//  
562 -// mockStatic(CoreBootstrap.class);  
563 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
564 -// PowerMock.replay(CoreBootstrap.class);  
565 -//  
566 -// configurationLoader.load(config);  
567 -// assertEquals("ALL UPPERCASE", config.conventionAllUpperCase);  
568 -// }  
569 -//  
570 -// @Test  
571 -// public void testConfigurationPropertiesErrorWithComplexObject() {  
572 -// ConfigurationPropertiesErrorWithComplexObject config = new ConfigurationPropertiesErrorWithComplexObject();  
573 -//  
574 -// try {  
575 -// configurationLoader.load(config);  
576 -// fail();  
577 -// } catch (Throwable throwable) {  
578 -// }  
579 -// }  
580 -//  
581 -// @Test  
582 -// public void testConfigurationFromXMLWithPrefix() {  
583 -// ConfigurationFromXMLWithPrefix config = new ConfigurationFromXMLWithPrefix();  
584 -//  
585 -// mockStatic(CoreBootstrap.class);  
586 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
587 -// PowerMock.replay(CoreBootstrap.class);  
588 -//  
589 -// configurationLoader.load(config);  
590 -// assertEquals("ConfigurationTest", config.nameConfiguration);  
591 -// }  
592 -//  
593 -// @Test  
594 -// public void testConfigurationXMLWithConventionDot() {  
595 -// ConfigurationXMLWithConventionDot config = new ConfigurationXMLWithConventionDot();  
596 -//  
597 -// mockStatic(CoreBootstrap.class);  
598 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
599 -// PowerMock.replay(CoreBootstrap.class);  
600 -//  
601 -// configurationLoader.load(config);  
602 -// assertEquals("convention.dot", config.conventionDot);  
603 -// }  
604 -//  
605 -// @Test  
606 -// public void testConfigurationXMLWithConventionUnderline() {  
607 -// ConfigurationXMLWithConventionUnderline config = new ConfigurationXMLWithConventionUnderline();  
608 -//  
609 -// mockStatic(CoreBootstrap.class);  
610 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
611 -// PowerMock.replay(CoreBootstrap.class);  
612 -//  
613 -// configurationLoader.load(config);  
614 -// assertEquals("Convention_Underline", config.conventionUnderline);  
615 -// }  
616 -//  
617 -// @Test  
618 -// public void testConfigurationXMLWithConventionAllUpperCase() {  
619 -// ConfigurationXMLWithConventionAllUpperCase config = new ConfigurationXMLWithConventionAllUpperCase();  
620 -//  
621 -// mockStatic(CoreBootstrap.class);  
622 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
623 -// PowerMock.replay(CoreBootstrap.class);  
624 -//  
625 -// configurationLoader.load(config);  
626 -// assertEquals("ALL UPPERCASE", config.conventionAllUpperCase);  
627 -// }  
628 -//  
629 -// @Test  
630 -// public void testConfigurationXMLWithConventionAllLowerCase() {  
631 -// ConfigurationXMLWithConventionAllLowerCase config = new ConfigurationXMLWithConventionAllLowerCase();  
632 -//  
633 -// mockStatic(CoreBootstrap.class);  
634 -// expect(CoreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
635 -// PowerMock.replay(CoreBootstrap.class);  
636 -//  
637 -// configurationLoader.load(config);  
638 -// assertEquals("All LowerCase", config.conventionAllLowerCase);  
639 -// }  
640 -//  
641 -//}  
642 \ No newline at end of file 1 \ No newline at end of file
  2 +/*
  3 + * Demoiselle Framework
  4 + * Copyright (C) 2010 SERPRO
  5 + * ----------------------------------------------------------------------------
  6 + * This file is part of Demoiselle Framework.
  7 + *
  8 + * Demoiselle Framework is free software; you can redistribute it and/or
  9 + * modify it under the terms of the GNU Lesser General Public License version 3
  10 + * as published by the Free Software Foundation.
  11 + *
  12 + * This program is distributed in the hope that it will be useful,
  13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15 + * GNU General Public License for more details.
  16 + *
  17 + * You should have received a copy of the GNU Lesser General Public License version 3
  18 + * along with this program; if not, see <http://www.gnu.org/licenses/>
  19 + * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  20 + * Fifth Floor, Boston, MA 02110-1301, USA.
  21 + * ----------------------------------------------------------------------------
  22 + * Este arquivo é parte do Framework Demoiselle.
  23 + *
  24 + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  25 + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  26 + * do Software Livre (FSF).
  27 + *
  28 + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  29 + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  30 + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  31 + * para maiores detalhes.
  32 + *
  33 + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  34 + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  35 + * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  36 + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  37 + */
  38 +package br.gov.frameworkdemoiselle.internal.configuration;
  39 +
  40 +import static org.easymock.EasyMock.expect;
  41 +import static org.junit.Assert.assertEquals;
  42 +import static org.junit.Assert.assertNull;
  43 +import static org.junit.Assert.assertTrue;
  44 +import static org.junit.Assert.fail;
  45 +import static org.powermock.api.easymock.PowerMock.mockStatic;
  46 +
  47 +import java.util.Locale;
  48 +
  49 +import javax.validation.constraints.NotNull;
  50 +
  51 +import org.junit.After;
  52 +import org.junit.Before;
  53 +import org.junit.Test;
  54 +import org.junit.runner.RunWith;
  55 +import org.powermock.api.easymock.PowerMock;
  56 +import org.powermock.core.classloader.annotations.PrepareForTest;
  57 +import org.powermock.modules.junit4.PowerMockRunner;
  58 +
  59 +import br.gov.frameworkdemoiselle.annotation.Ignore;
  60 +import br.gov.frameworkdemoiselle.annotation.Name;
  61 +import br.gov.frameworkdemoiselle.configuration.ConfigType;
  62 +import br.gov.frameworkdemoiselle.configuration.Configuration;
  63 +import br.gov.frameworkdemoiselle.configuration.ConfigurationException;
  64 +import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap;
  65 +import br.gov.frameworkdemoiselle.util.Beans;
  66 +
  67 +@RunWith(PowerMockRunner.class)
  68 +@PrepareForTest(Beans.class)
  69 +public class ConfigurationLoaderTest {
  70 +
  71 + private ConfigurationLoader configurationLoader;
  72 +
  73 + private CoreBootstrap coreBootstrap;
  74 +
  75 + @Configuration
  76 + public class ConfigurationSuccessfulProperties {
  77 +
  78 + @Name("frameworkdemoiselle.configurationtest.nameConfiguration")
  79 + protected String nameConfiguration;
  80 +
  81 + }
  82 +
  83 + @Configuration
  84 + public class ConfigurationSuccessfulProperties2 {
  85 +
  86 + @Name("frameworkdemoiselle.configurationtest.name")
  87 + protected String name;
  88 +
  89 + }
  90 +
  91 + @Configuration(resource = "absentFile")
  92 + public class ConfigurationPropertiesWithAbsentFile {
  93 +
  94 + @Name("frameworkdemoiselle.configurationtest.nameConfiguration")
  95 + protected String nameConfiguration;
  96 +
  97 + }
  98 +
  99 + @Configuration
  100 + public class ConfigurationWithEmptyName {
  101 +
  102 + @Name("")
  103 + protected String nameConfiguration;
  104 +
  105 + }
  106 +
  107 + @Configuration
  108 + public class ConfigurationWithoutNameAnnotation {
  109 +
  110 + protected String nameConfiguration;
  111 +
  112 + }
  113 +
  114 + @Configuration
  115 + public class ConfigurationWithIgnoreAnnotation {
  116 +
  117 + @Ignore
  118 + protected String nameConfiguration;
  119 +
  120 + }
  121 +
  122 + @Configuration(prefix = "frameworkdemoiselle.configurationtest")
  123 + public class ConfigurationWithPrefix {
  124 +
  125 + @Name("nameConfiguration")
  126 + protected String nameConfiguration;
  127 +
  128 + }
  129 +
  130 + @Configuration
  131 + public class ConfigurationWithKeyNotFoundInProperties {
  132 +
  133 + protected Integer notExistKey;
  134 + }
  135 +
  136 + @Configuration
  137 + public class ConfigurationWithNotNullFieldButValueIsNull {
  138 +
  139 + @Name("notexistKey")
  140 + @NotNull
  141 + protected int nameConfiguration;
  142 +
  143 + }
  144 +
  145 + @Configuration
  146 + public class ConfigurationWithNotNullFieldAndValueIsNotNull {
  147 +
  148 + @Name("nameConfiguration")
  149 + @NotNull
  150 + protected String nameConfiguration;
  151 +
  152 + }
  153 +
  154 + @Configuration
  155 + public class ConfigurationWithNonPrimitiveFieldValueNull {
  156 +
  157 + @Name("notexistKey")
  158 + protected String nameConfiguration;
  159 +
  160 + }
  161 +
  162 + @Configuration
  163 + public class ConfigurationWithPrimitiveFieldValueNull {
  164 +
  165 + @Name("notexistKey")
  166 + protected int nameConfiguration = 1;
  167 +
  168 + }
  169 +
  170 + @Configuration(type = ConfigType.SYSTEM)
  171 + public class ConfigurationWithKeyFromSystem {
  172 +
  173 + @Name("os.name")
  174 + protected String nameConfiguration;
  175 +
  176 + }
  177 +
  178 + @Configuration(type = ConfigType.XML)
  179 + public class ConfigurationWithKeyFromXML {
  180 +
  181 + @Name("nameConfiguration")
  182 + protected String nameConfiguration;
  183 +
  184 + }
  185 +
  186 + @Configuration(type = ConfigType.XML, prefix = "br.gov.frameworkdemoiselle")
  187 + public class ConfigurationFromXMLWithPrefix {
  188 +
  189 + @Name("nameConfiguration")
  190 + protected String nameConfiguration;
  191 +
  192 + }
  193 +
  194 + @Configuration
  195 + public class ConfigurationPropertiesWithTwoAmbiguousKey {
  196 +
  197 + protected String twoConfiguration;
  198 +
  199 + }
  200 +
  201 + @Configuration
  202 + public class ConfigurationPropertiesWithThreeAmbiguousKey {
  203 +
  204 + protected String threeConfiguration;
  205 +
  206 + }
  207 +
  208 + @Configuration
  209 + public class ConfigurationPropertiesWithFourAmbiguousKey {
  210 +
  211 + protected String fourConfiguration;
  212 +
  213 + }
  214 +
  215 + @Configuration
  216 + public class ConfigurationWithConventionUnderline {
  217 +
  218 + protected String conventionUnderline;
  219 +
  220 + }
  221 +
  222 + @Configuration(type = ConfigType.XML)
  223 + public class ConfigurationXMLWithConventionUnderline {
  224 +
  225 + protected String conventionUnderline;
  226 +
  227 + }
  228 +
  229 + @Configuration
  230 + public class ConfigurationWithConventionDot {
  231 +
  232 + protected String conventionDot;
  233 +
  234 + }
  235 +
  236 + @Configuration(type = ConfigType.XML)
  237 + public class ConfigurationXMLWithConventionDot {
  238 +
  239 + protected String conventionDot;
  240 +
  241 + }
  242 +
  243 + @Configuration
  244 + public class ConfigurationWithConventionAllUpperCase {
  245 +
  246 + protected String conventionAllUpperCase;
  247 +
  248 + }
  249 +
  250 + @Configuration(type = ConfigType.XML)
  251 + public class ConfigurationXMLWithConventionAllUpperCase {
  252 +
  253 + protected String conventionAllUpperCase;
  254 +
  255 + }
  256 +
  257 + @Configuration
  258 + public class ConfigurationWithConventionAllLowerCase {
  259 +
  260 + protected String conventionAllLowerCase;
  261 +
  262 + }
  263 +
  264 + @Configuration(type = ConfigType.XML)
  265 + public class ConfigurationXMLWithConventionAllLowerCase {
  266 +
  267 + protected String conventionAllLowerCase;
  268 +
  269 + }
  270 +
  271 + @Configuration(prefix = "br.gov.frameworkdemoiselle")
  272 + public class ConfigurationPropertiesSuccessWithPrefixNonAmbiguous {
  273 +
  274 + protected String success;
  275 +
  276 + }
  277 +
  278 + @Configuration
  279 + public class ConfigurationPropertiesErrorWithComplexObject {
  280 +
  281 + protected ConfigurationWithConventionAllLowerCase complexObject;
  282 + }
  283 +
  284 + @Before
  285 + public void setUp() throws Exception {
  286 + this.configurationLoader = new ConfigurationLoader();
  287 + mockStatic(Beans.class);
  288 + this.coreBootstrap = PowerMock.createMock(CoreBootstrap.class);
  289 +
  290 + expect(Beans.getReference(CoreBootstrap.class)).andReturn(coreBootstrap);
  291 + expect(Beans.getReference(Locale.class)).andReturn(Locale.getDefault());
  292 + }
  293 +
  294 + @After
  295 + public void tearDown() throws Exception {
  296 + }
  297 +
  298 + @Test
  299 + public void testConfigurationSuccessfulPropertiesPossibleConventions() {
  300 + ConfigurationSuccessfulProperties config = new ConfigurationSuccessfulProperties();
  301 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  302 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  303 + configurationLoader.load(config);
  304 + assertEquals("ConfigurationTest", config.nameConfiguration);
  305 +
  306 + }
  307 +
  308 + @Test
  309 + public void testConfigurationSuccessfulPropertiesNoConventions() {
  310 + ConfigurationSuccessfulProperties2 config = new ConfigurationSuccessfulProperties2();
  311 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  312 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  313 + configurationLoader.load(config);
  314 + assertEquals("ConfigurationTest2", config.name);
  315 + }
  316 +
  317 + @Test
  318 + public void ConfigurationPropertiesWithAbsentFile() {
  319 + ConfigurationPropertiesWithAbsentFile config = new ConfigurationPropertiesWithAbsentFile();
  320 +
  321 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  322 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  323 +
  324 + try {
  325 + configurationLoader.load(config);
  326 + fail();
  327 + } catch (Exception e) {
  328 + }
  329 + }
  330 +
  331 + @Test
  332 + public void testConfigurationProcessorWithNameEmpty() {
  333 + ConfigurationWithEmptyName config = new ConfigurationWithEmptyName();
  334 +
  335 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  336 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  337 +
  338 + try {
  339 + configurationLoader.load(config);
  340 + fail();
  341 + } catch (Exception e) {
  342 + }
  343 + }
  344 +
  345 + @Test
  346 + public void testConfigurationWithoutNameAnnotation() {
  347 + ConfigurationWithoutNameAnnotation config = new ConfigurationWithoutNameAnnotation();
  348 +
  349 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  350 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  351 +
  352 + configurationLoader.load(config);
  353 + assertEquals("ConfigurationTest", config.nameConfiguration);
  354 + }
  355 +
  356 + @Test
  357 + public void testConfigurationWithIgnoreAnnotation() {
  358 + ConfigurationWithIgnoreAnnotation config = new ConfigurationWithIgnoreAnnotation();
  359 +
  360 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  361 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  362 +
  363 + configurationLoader.load(config);
  364 + assertNull(config.nameConfiguration);
  365 + }
  366 +
  367 + @Test
  368 + public void testConfigurationWithPrefix() {
  369 + ConfigurationWithPrefix config = new ConfigurationWithPrefix();
  370 +
  371 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  372 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  373 +
  374 + configurationLoader.load(config);
  375 + assertEquals("ConfigurationTest", config.nameConfiguration);
  376 + }
  377 +
  378 + @Test
  379 + public void testConfigurationWithKeyNotFoundInProperties() {
  380 + ConfigurationWithKeyNotFoundInProperties config = new ConfigurationWithKeyNotFoundInProperties();
  381 +
  382 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  383 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  384 +
  385 + configurationLoader.load(config);
  386 + assertNull(config.notExistKey);
  387 + }
  388 +
  389 + @Test
  390 + public void testConfigurationWithNotNullFieldButValueIsNull() {
  391 + ConfigurationWithNotNullFieldButValueIsNull config = new ConfigurationWithNotNullFieldButValueIsNull();
  392 +
  393 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  394 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  395 +
  396 + try {
  397 + configurationLoader.load(config);
  398 + fail();
  399 + } catch (Exception e) {
  400 + assertTrue(true);
  401 + }
  402 + }
  403 +
  404 + @Test
  405 + public void testConfigurationWithNotNullFieldAndValueIsNotNull() {
  406 + ConfigurationWithNotNullFieldAndValueIsNotNull config = new ConfigurationWithNotNullFieldAndValueIsNotNull();
  407 +
  408 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  409 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  410 +
  411 + configurationLoader.load(config);
  412 + assertEquals("ConfigurationTest", config.nameConfiguration);
  413 + }
  414 +
  415 + @Test
  416 + public void testConfigurationWithNonPrimitiveFieldValueNull() {
  417 + ConfigurationWithNonPrimitiveFieldValueNull config = new ConfigurationWithNonPrimitiveFieldValueNull();
  418 +
  419 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  420 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  421 +
  422 + configurationLoader.load(config);
  423 + assertNull(config.nameConfiguration);
  424 + }
  425 +
  426 + @Test
  427 + public void testConfigurationWithPrimitiveFieldValueNull() {
  428 + ConfigurationWithPrimitiveFieldValueNull config = new ConfigurationWithPrimitiveFieldValueNull();
  429 +
  430 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  431 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  432 +
  433 + configurationLoader.load(config);
  434 + assertEquals(1, config.nameConfiguration);
  435 + }
  436 +
  437 + @Test
  438 + public void testConfigurationWithKeyFromSystem() {
  439 + ConfigurationWithKeyFromSystem config = new ConfigurationWithKeyFromSystem();
  440 +
  441 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  442 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  443 +
  444 + configurationLoader.load(config);
  445 + assertEquals(System.getProperty("os.name"), config.nameConfiguration);
  446 + }
  447 +
  448 + @Test
  449 + public void testConfigurationWithKeyFromXML() {
  450 + ConfigurationWithKeyFromXML config = new ConfigurationWithKeyFromXML();
  451 +
  452 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  453 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  454 +
  455 + configurationLoader.load(config);
  456 + assertEquals("ConfigurationTest", config.nameConfiguration);
  457 + }
  458 +
  459 + @Test
  460 + public void testConfigurationWithTwoAmbiguousKey() {
  461 + ConfigurationPropertiesWithTwoAmbiguousKey config = new ConfigurationPropertiesWithTwoAmbiguousKey();
  462 +
  463 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  464 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  465 +
  466 + try {
  467 + configurationLoader.load(config);
  468 + fail();
  469 + } catch (Exception e) {
  470 + assertTrue(e instanceof ConfigurationException);
  471 + }
  472 +
  473 + }
  474 +
  475 + @Test
  476 + public void testConfigurationWithThreeAmbiguousKey() {
  477 + ConfigurationPropertiesWithThreeAmbiguousKey config = new ConfigurationPropertiesWithThreeAmbiguousKey();
  478 +
  479 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  480 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  481 +
  482 + try {
  483 + configurationLoader.load(config);
  484 + fail();
  485 + } catch (Exception e) {
  486 + assertTrue(e instanceof ConfigurationException);
  487 + }
  488 +
  489 + }
  490 +
  491 + @Test
  492 + public void testConfigurationWithFourAmbiguousKey() {
  493 + ConfigurationPropertiesWithFourAmbiguousKey config = new ConfigurationPropertiesWithFourAmbiguousKey();
  494 +
  495 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  496 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  497 +
  498 + try {
  499 + configurationLoader.load(config);
  500 + fail();
  501 + } catch (Exception e) {
  502 + assertTrue(e instanceof ConfigurationException);
  503 + }
  504 +
  505 + }
  506 +
  507 + @Test
  508 + public void testConfigurationWithPrefixNotAmbiguous() {
  509 + ConfigurationPropertiesSuccessWithPrefixNonAmbiguous config = new ConfigurationPropertiesSuccessWithPrefixNonAmbiguous();
  510 +
  511 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  512 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  513 +
  514 + configurationLoader.load(config);
  515 + assertEquals("Success", config.success);
  516 + }
  517 +
  518 + @Test
  519 + public void testConfigurationWithConventionUnderline() {
  520 + ConfigurationWithConventionUnderline config = new ConfigurationWithConventionUnderline();
  521 +
  522 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  523 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  524 +
  525 + configurationLoader.load(config);
  526 + assertEquals("Convention Underline", config.conventionUnderline);
  527 + }
  528 +
  529 + @Test
  530 + public void testConfigurationWithConventionDot() {
  531 + ConfigurationWithConventionDot config = new ConfigurationWithConventionDot();
  532 +
  533 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  534 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  535 +
  536 + configurationLoader.load(config);
  537 + assertEquals("Convention Dot", config.conventionDot);
  538 + }
  539 +
  540 + @Test
  541 + public void testConfigurationWithConventionAllLowerCase() {
  542 + ConfigurationWithConventionAllLowerCase config = new ConfigurationWithConventionAllLowerCase();
  543 +
  544 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  545 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  546 +
  547 + configurationLoader.load(config);
  548 + assertEquals("All LowerCase", config.conventionAllLowerCase);
  549 + }
  550 +
  551 + @Test
  552 + public void testConfigurationWithConventionAllUpperCase() {
  553 + ConfigurationWithConventionAllUpperCase config = new ConfigurationWithConventionAllUpperCase();
  554 +
  555 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  556 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  557 +
  558 + configurationLoader.load(config);
  559 + assertEquals("ALL UPPERCASE", config.conventionAllUpperCase);
  560 + }
  561 +
  562 + @Test
  563 + public void testConfigurationPropertiesErrorWithComplexObject() {
  564 + ConfigurationPropertiesErrorWithComplexObject config = new ConfigurationPropertiesErrorWithComplexObject();
  565 +
  566 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  567 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  568 +
  569 + try {
  570 + configurationLoader.load(config);
  571 + fail();
  572 + } catch (Throwable throwable) {
  573 + }
  574 + }
  575 +
  576 + @Test
  577 + public void testConfigurationFromXMLWithPrefix() {
  578 + ConfigurationFromXMLWithPrefix config = new ConfigurationFromXMLWithPrefix();
  579 +
  580 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  581 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  582 +
  583 + configurationLoader.load(config);
  584 + assertEquals("ConfigurationTest", config.nameConfiguration);
  585 + }
  586 +
  587 + @Test
  588 + public void testConfigurationXMLWithConventionDot() {
  589 + ConfigurationXMLWithConventionDot config = new ConfigurationXMLWithConventionDot();
  590 +
  591 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  592 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  593 +
  594 + configurationLoader.load(config);
  595 + assertEquals("convention.dot", config.conventionDot);
  596 + }
  597 +
  598 + @Test
  599 + public void testConfigurationXMLWithConventionUnderline() {
  600 + ConfigurationXMLWithConventionUnderline config = new ConfigurationXMLWithConventionUnderline();
  601 +
  602 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  603 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  604 +
  605 + configurationLoader.load(config);
  606 + assertEquals("Convention_Underline", config.conventionUnderline);
  607 + }
  608 +
  609 + @Test
  610 + public void testConfigurationXMLWithConventionAllUpperCase() {
  611 + ConfigurationXMLWithConventionAllUpperCase config = new ConfigurationXMLWithConventionAllUpperCase();
  612 +
  613 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  614 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  615 +
  616 + configurationLoader.load(config);
  617 + assertEquals("ALL UPPERCASE", config.conventionAllUpperCase);
  618 + }
  619 +
  620 + @Test
  621 + public void testConfigurationXMLWithConventionAllLowerCase() {
  622 + ConfigurationXMLWithConventionAllLowerCase config = new ConfigurationXMLWithConventionAllLowerCase();
  623 +
  624 + expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  625 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  626 +
  627 + configurationLoader.load(config);
  628 + assertEquals("All LowerCase", config.conventionAllLowerCase);
  629 + }
  630 +
  631 +}
643 \ No newline at end of file 632 \ No newline at end of file
impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoaderWithArrayTest.java
@@ -39,6 +39,7 @@ package br.gov.frameworkdemoiselle.internal.configuration; @@ -39,6 +39,7 @@ package br.gov.frameworkdemoiselle.internal.configuration;
39 import static org.easymock.EasyMock.createMock; 39 import static org.easymock.EasyMock.createMock;
40 import static org.easymock.EasyMock.expect; 40 import static org.easymock.EasyMock.expect;
41 import static org.junit.Assert.assertEquals; 41 import static org.junit.Assert.assertEquals;
  42 +import static org.powermock.api.easymock.PowerMock.mockStatic;
42 import static org.powermock.api.easymock.PowerMock.replay; 43 import static org.powermock.api.easymock.PowerMock.replay;
43 44
44 import java.awt.Color; 45 import java.awt.Color;
@@ -55,6 +56,7 @@ import org.junit.Before; @@ -55,6 +56,7 @@ import org.junit.Before;
55 import org.junit.Test; 56 import org.junit.Test;
56 import org.junit.runner.RunWith; 57 import org.junit.runner.RunWith;
57 import org.powermock.api.easymock.PowerMock; 58 import org.powermock.api.easymock.PowerMock;
  59 +import org.powermock.core.classloader.annotations.PrepareForTest;
58 import org.powermock.modules.junit4.PowerMockRunner; 60 import org.powermock.modules.junit4.PowerMockRunner;
59 import org.powermock.reflect.Whitebox; 61 import org.powermock.reflect.Whitebox;
60 import org.slf4j.Logger; 62 import org.slf4j.Logger;
@@ -62,9 +64,11 @@ import org.slf4j.Logger; @@ -62,9 +64,11 @@ import org.slf4j.Logger;
62 import br.gov.frameworkdemoiselle.configuration.ConfigType; 64 import br.gov.frameworkdemoiselle.configuration.ConfigType;
63 import br.gov.frameworkdemoiselle.configuration.Configuration; 65 import br.gov.frameworkdemoiselle.configuration.Configuration;
64 import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap; 66 import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap;
  67 +import br.gov.frameworkdemoiselle.util.Beans;
65 import br.gov.frameworkdemoiselle.util.ResourceBundle; 68 import br.gov.frameworkdemoiselle.util.ResourceBundle;
66 69
67 @RunWith(PowerMockRunner.class) 70 @RunWith(PowerMockRunner.class)
  71 +@PrepareForTest(Beans.class)
68 public class ConfigurationLoaderWithArrayTest { 72 public class ConfigurationLoaderWithArrayTest {
69 73
70 private ConfigurationLoader configurationLoader; 74 private ConfigurationLoader configurationLoader;
@@ -149,13 +153,7 @@ public class ConfigurationLoaderWithArrayTest { @@ -149,13 +153,7 @@ public class ConfigurationLoaderWithArrayTest {
149 153
150 @Before 154 @Before
151 public void setUp() throws Exception { 155 public void setUp() throws Exception {
152 - Logger logger;  
153 - ResourceBundle bundle;  
154 - logger = PowerMock.createMock(Logger.class);  
155 - bundle = new ResourceBundle("demoiselle-core-bundle", Locale.getDefault());  
156 configurationLoader = new ConfigurationLoader(); 156 configurationLoader = new ConfigurationLoader();
157 - Whitebox.setInternalState(this.configurationLoader, "bundle", bundle);  
158 - Whitebox.setInternalState(this.configurationLoader, "logger", logger);  
159 } 157 }
160 158
161 @After 159 @After
@@ -341,12 +339,16 @@ public class ConfigurationLoaderWithArrayTest { @@ -341,12 +339,16 @@ public class ConfigurationLoaderWithArrayTest {
341 } 339 }
342 340
343 private ConfigurationPropertiesWithArray prepareConfigurationPropertiesWithArray() { 341 private ConfigurationPropertiesWithArray prepareConfigurationPropertiesWithArray() {
  342 + mockStatic(Beans.class);
344 ConfigurationPropertiesWithArray config = new ConfigurationPropertiesWithArray(); 343 ConfigurationPropertiesWithArray config = new ConfigurationPropertiesWithArray();
345 -  
346 - CoreBootstrap coreBootstrap = createMock(CoreBootstrap.class); 344 + CoreBootstrap coreBootstrap = PowerMock.createMock(CoreBootstrap.class);
  345 +
  346 + expect(Beans.getReference(CoreBootstrap.class)).andReturn(coreBootstrap);
  347 + expect(Beans.getReference(Locale.class)).andReturn(Locale.getDefault());
  348 +
347 expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true); 349 expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
348 350
349 - replay(coreBootstrap); 351 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
350 352
351 configurationLoader.load(config); 353 configurationLoader.load(config);
352 return config; 354 return config;
@@ -531,13 +533,17 @@ public class ConfigurationLoaderWithArrayTest { @@ -531,13 +533,17 @@ public class ConfigurationLoaderWithArrayTest {
531 } 533 }
532 534
533 private ConfigurationXMLWithArray prepareConfigurationXMLWithArray() { 535 private ConfigurationXMLWithArray prepareConfigurationXMLWithArray() {
  536 + mockStatic(Beans.class);
534 ConfigurationXMLWithArray config = new ConfigurationXMLWithArray(); 537 ConfigurationXMLWithArray config = new ConfigurationXMLWithArray();
535 -  
536 - CoreBootstrap coreBootstrap = createMock(CoreBootstrap.class); 538 + CoreBootstrap coreBootstrap = PowerMock.createMock(CoreBootstrap.class);
  539 +
  540 + expect(Beans.getReference(CoreBootstrap.class)).andReturn(coreBootstrap);
  541 + expect(Beans.getReference(Locale.class)).andReturn(Locale.getDefault());
  542 +
537 expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true); 543 expect(coreBootstrap.isAnnotatedType(config.getClass())).andReturn(true);
538 544
539 - replay(CoreBootstrap.class);  
540 - 545 + PowerMock.replayAll(CoreBootstrap.class,Beans.class);
  546 +
541 configurationLoader.load(config); 547 configurationLoader.load(config);
542 return config; 548 return config;
543 } 549 }