1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.configuration.interpol;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNull;
21
22 import java.awt.event.KeyEvent;
23
24 import org.junit.After;
25 import org.junit.Before;
26 import org.junit.Test;
27
28
29
30
31
32
33 public class TestConstantLookup
34 {
35
36 private static final String CLS_NAME = ConfigurationInterpolator.class
37 .getName() + '.';
38
39
40 private static final String FIELD = "PREFIX_CONSTANTS";
41
42
43 private static final String VARNAME = CLS_NAME + FIELD;
44
45
46 private ConstantLookup lookup;
47
48 @Before
49 public void setUp() throws Exception
50 {
51 lookup = new ConstantLookup();
52 }
53
54
55
56
57
58 @After
59 public void tearDown() throws Exception
60 {
61 ConstantLookup.clear();
62 }
63
64
65
66
67 @Test
68 public void testLookupConstant()
69 {
70 assertEquals("Wrong value of constant",
71 ConfigurationInterpolator.PREFIX_CONSTANTS, lookup
72 .lookup(VARNAME));
73 }
74
75
76
77
78 @Test
79 public void testLookupNonExisting()
80 {
81 assertNull("Non null return value for non existing constant", lookup
82 .lookup(CLS_NAME + "NO_FIELD"));
83 }
84
85
86
87
88
89 @Test
90 public void testLookupPrivate()
91 {
92 assertNull("Non null return value for non accessable field", lookup
93 .lookup(CLS_NAME + "PREFIX_SEPARATOR"));
94 }
95
96
97
98
99 @Test
100 public void testLookupUnknownClass()
101 {
102 assertNull("Non null return value for unknown class", lookup
103 .lookup("org.apache.commons.configuration.NonExistingConfig."
104 + FIELD));
105 }
106
107
108
109
110
111 @Test
112 public void testLookupInvalidSyntax()
113 {
114 assertNull("Non null return value for invalid variable name", lookup
115 .lookup("InvalidVariableName"));
116 }
117
118
119
120
121 @Test
122 public void testLookupNull()
123 {
124 assertNull("Non null return value for null variable", lookup
125 .lookup(null));
126 }
127
128
129
130
131 @Test
132 public void testLookupCache()
133 {
134 testLookupConstant();
135 testLookupConstant();
136 }
137
138
139
140
141
142 @Test
143 public void testLookupNonStringFromCache()
144 {
145 final String var = KeyEvent.class.getName() + ".VK_ESCAPE";
146 final String expected = String.valueOf(KeyEvent.VK_ESCAPE);
147 assertEquals("Wrong result of first lookup", expected, lookup
148 .lookup(var));
149 assertEquals("Wrong result of 2nd lookup", expected, lookup.lookup(var));
150 }
151 }