1 package org.apache.commons.configuration;
2
3 import java.util.Iterator;
4 import java.util.Map;
5
6 import junit.framework.Test;
7 import junit.framework.TestCase;
8 import junit.framework.TestSuite;
9
10 /***
11 * @author rgladwel
12 */
13 public class TestConfigurationSet extends TestCase {
14
15 ConfigurationMap.ConfigurationSet set;
16
17 String[] properties = {
18 "booleanProperty",
19 "doubleProperty",
20 "floatProperty",
21 "intProperty",
22 "longProperty",
23 "shortProperty",
24 "stringProperty"
25 };
26
27 Object[] values = {
28 Boolean.TRUE,
29 new Double(Double.MAX_VALUE),
30 new Float(Float.MAX_VALUE),
31 new Integer(Integer.MAX_VALUE),
32 new Long(Long.MAX_VALUE),
33 new Short(Short.MAX_VALUE),
34 "This is a string"
35 };
36
37 /***
38 * Construct a new instance of this test case.
39 * @param name Name of the test case
40 */
41 public TestConfigurationSet(String name)
42 {
43 super(name);
44 }
45
46 /***
47 * Set up instance variables required by this test case.
48 */
49 public void setUp() throws Exception
50 {
51 BaseConfiguration configuration = new BaseConfiguration();
52 for(int i = 0; i < properties.length ; i++)
53 configuration.setProperty(properties[i], values[i]);
54 set = new ConfigurationMap.ConfigurationSet(configuration);
55 }
56
57 /***
58 * Return the tests included in this test suite.
59 */
60 public static Test suite()
61 {
62 return (new TestSuite(TestConfigurationSet.class));
63 }
64
65 /***
66 * Tear down instance variables required by this test case.
67 */
68 public void tearDown()
69 {
70 set = null;
71 }
72
73 public void testSize() {
74 assertEquals("Entry set does not match properties size.", properties.length, set.size());
75 }
76
77 /***
78 * Class under test for Iterator iterator()
79 */
80 public void testIterator() {
81 Iterator iterator = set.iterator();
82 while(iterator.hasNext()) {
83 Object object = iterator.next();
84 assertTrue("Entry set iterator did not return EntrySet object, returned "
85 + object.getClass().getName(), object instanceof Map.Entry);
86 Map.Entry entry = (Map.Entry) object;
87 boolean found = false;
88 for(int i = 0; i < properties.length; i++) {
89 if(entry.getKey().equals(properties[i])) {
90 assertEquals("Incorrect value for property " +
91 properties[i],values[i],entry.getValue());
92 found = true;
93 }
94 }
95 assertTrue("Could not find property " + entry.getKey(),found);
96 iterator.remove();
97 }
98 assertTrue("Iterator failed to remove all properties.",set.isEmpty());
99 }
100
101 }