1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.configuration;
19
20 import java.util.HashMap;
21 import java.util.Map;
22
23 import org.apache.commons.configuration.event.ConfigurationEvent;
24 import org.apache.commons.configuration.event.ConfigurationListener;
25
26 /***
27 * Tests for MapConfiguration.
28 *
29 * @author Emmanuel Bourg
30 * @version $Revision: 439648 $, $Date: 2006-09-02 22:42:10 +0200 (Sa, 02 Sep 2006) $
31 */
32 public class TestMapConfiguration extends TestAbstractConfiguration
33 {
34 protected AbstractConfiguration getConfiguration()
35 {
36 Map map = new HashMap();
37 map.put("key1", "value1");
38 map.put("key2", "value2");
39 map.put("list", "value1, value2");
40
41 return new MapConfiguration(map);
42 }
43
44 protected AbstractConfiguration getEmptyConfiguration()
45 {
46 return new MapConfiguration(new HashMap());
47 }
48
49 public void testGetMap()
50 {
51 Map map = new HashMap();
52
53 MapConfiguration conf = new MapConfiguration(map);
54 assertEquals(map, conf.getMap());
55 }
56
57 public void testClone()
58 {
59 MapConfiguration config = (MapConfiguration) getConfiguration();
60 MapConfiguration copy = (MapConfiguration) config.clone();
61 StrictConfigurationComparator comp = new StrictConfigurationComparator();
62 assertTrue("Configurations are not equal", comp.compare(config, copy));
63 }
64
65 /***
66 * Tests if the cloned configuration decoupled from the original.
67 */
68 public void testCloneModify()
69 {
70 MapConfiguration config = (MapConfiguration) getConfiguration();
71 config.addConfigurationListener(new ConfigurationListener()
72 {
73 public void configurationChanged(ConfigurationEvent event)
74 {
75
76 }
77 });
78 MapConfiguration copy = (MapConfiguration) config.clone();
79 assertTrue("Event listeners were copied", copy
80 .getConfigurationListeners().isEmpty());
81
82 config.addProperty("cloneTest", Boolean.TRUE);
83 assertFalse("Map not decoupled", copy.containsKey("cloneTest"));
84 copy.clearProperty("key1");
85 assertEquals("Map not decoupled (2)", "value1", config
86 .getString("key1"));
87 }
88 }