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 }