1 package org.codehaus.plexus.context;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.util.HashMap;
20 import java.util.Map;
21
22 import junit.framework.AssertionFailedError;
23 import junit.framework.TestCase;
24
25
26
27
28
29
30
31 public class DefaultContextTest extends TestCase {
32
33 public DefaultContextTest(String name) {
34 super(name);
35 }
36
37 public void testContextCreationWithMap() throws Exception {
38 Map map = new HashMap();
39
40 map.put("name", "jason");
41
42 DefaultContext context = new DefaultContext(map);
43
44 assertEquals("jason", (String) context.get("name"));
45
46 assertEquals(map, context.getContextData());
47
48
49 context.put("name", null);
50
51
52 try {
53 context.get("name");
54 } catch (ContextException e) {
55
56 }
57 }
58
59 public void testAddContext() throws Exception {
60 DefaultContext context = new DefaultContext();
61 context.put("key1", "value1");
62 assertTrue("value1".equals(context.get("key1")));
63 context.put("key1", "");
64 assertTrue("".equals(context.get("key1")));
65
66 context.put("key1", "value1");
67 context.makeReadOnly();
68
69 try {
70 context.put("key1", "");
71 throw new AssertionFailedError("You are not allowed to change a value after it has been made read only");
72 } catch (IllegalStateException ise) {
73 assertTrue("Value is null", "value1".equals(context.get("key1")));
74 }
75 }
76
77 public void testHiddenItems() throws ContextException {
78
79 DefaultContext context = new DefaultContext();
80 context.put("test", "test");
81
82
83 assertTrue("test".equals(context.get("test")));
84
85
86 context.hide("test");
87 try {
88 context.get("test");
89 fail("The item \"test\" was hidden in the child containerContext, but could still be retrieved via get().");
90 } catch (ContextException ce) {
91 assertTrue(true);
92 }
93
94
95 context.put("test", "test");
96 assertTrue("test".equals(context.get("test")));
97
98
99 context.makeReadOnly();
100 try {
101 context.hide("test");
102 fail("hide() did not throw an exception, even though the containerContext is supposed to be read-only.");
103 } catch (IllegalStateException ise) {
104 assertTrue(true);
105 }
106
107
108 assertTrue("test".equals(context.get("test")));
109 }
110 }