1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.log4j.helpers;
22
23 import org.apache.log4j.helpers.OptionConverter;
24 import org.apache.log4j.Level;
25 import org.apache.log4j.xml.XLevel;
26
27 import junit.framework.TestCase;
28 import junit.framework.TestSuite;
29 import junit.framework.Test;
30 import java.util.Properties;
31
32 /***
33 Test variable substitution code.
34 @author Ceki Gülcü
35
36 @since 1.0
37 */
38 public class OptionConverterTestCase extends TestCase {
39
40 Properties props;
41
42 public OptionConverterTestCase(String name) {
43 super(name);
44 }
45
46 public
47 void setUp() {
48 props = new Properties();
49 props.put("TOTO", "wonderful");
50 props.put("key1", "value1");
51 props.put("key2", "value2");
52 System.setProperties(props);
53
54
55 }
56
57 public
58 void tearDown() {
59 props = null;
60 }
61
62 public
63 void varSubstTest1() {
64 String r;
65
66 r = OptionConverter.substVars("hello world.", null);
67 assertEquals("hello world.", r);
68
69 r = OptionConverter.substVars("hello ${TOTO} world.", null);
70
71 assertEquals("hello wonderful world.", r);
72 }
73
74
75 public
76 void varSubstTest2() {
77 String r;
78
79 r = OptionConverter.substVars("Test2 ${key1} mid ${key2} end.", null);
80 assertEquals("Test2 value1 mid value2 end.", r);
81 }
82
83 public
84 void varSubstTest3() {
85 String r;
86
87 r = OptionConverter.substVars(
88 "Test3 ${unset} mid ${key1} end.", null);
89 assertEquals("Test3 mid value1 end.", r);
90 }
91
92 public
93 void varSubstTest4() {
94 String res;
95 String val = "Test4 ${incomplete ";
96 try {
97 res = OptionConverter.substVars(val, null);
98 }
99 catch(IllegalArgumentException e) {
100 String errorMsg = e.getMessage();
101
102 assertEquals('"'+val
103 + "\" has no closing brace. Opening brace at position 6.",
104 errorMsg);
105 }
106 }
107
108 public
109 void varSubstTest5() {
110 Properties props = new Properties();
111 props.put("p1", "x1");
112 props.put("p2", "${p1}");
113 String res = OptionConverter.substVars("${p2}", props);
114 System.out.println("Result is ["+res+"].");
115 assertEquals(res, "x1");
116 }
117
118 public
119 void toLevelTest1() {
120 String val = "INFO";
121 Level p = OptionConverter.toLevel(val, null);
122 assertEquals(p, Level.INFO);
123 }
124
125 public
126 void toLevelTest2() {
127 String val = "INFO#org.apache.log4j.xml.XLevel";
128 Level p = OptionConverter.toLevel(val, null);
129 assertEquals(p, Level.INFO);
130 }
131
132 public
133 void toLevelTest3() {
134 String val = "TRACE#org.apache.log4j.xml.XLevel";
135 Level p = OptionConverter.toLevel(val, null);
136 assertEquals(p, XLevel.TRACE);
137 }
138
139 public
140 void toLevelTest4() {
141 String val = "TR#org.apache.log4j.xml.XLevel";
142 Level p = OptionConverter.toLevel(val, null);
143 assertEquals(p, null);
144 }
145
146 public
147 void toLevelTest5() {
148 String val = "INFO#org.apache.log4j.xml.TOTO";
149 Level p = OptionConverter.toLevel(val, null);
150 assertEquals(p, null);
151 }
152
153
154 public
155 static
156 Test suite() {
157 TestSuite suite = new TestSuite();
158 suite.addTest(new OptionConverterTestCase("varSubstTest5"));
159 suite.addTest(new OptionConverterTestCase("varSubstTest1"));
160 suite.addTest(new OptionConverterTestCase("varSubstTest2"));
161 suite.addTest(new OptionConverterTestCase("varSubstTest3"));
162 suite.addTest(new OptionConverterTestCase("varSubstTest4"));
163
164
165 suite.addTest(new OptionConverterTestCase("toLevelTest1"));
166 suite.addTest(new OptionConverterTestCase("toLevelTest2"));
167 suite.addTest(new OptionConverterTestCase("toLevelTest3"));
168 suite.addTest(new OptionConverterTestCase("toLevelTest4"));
169 suite.addTest(new OptionConverterTestCase("toLevelTest5"));
170 return suite;
171 }
172
173 }