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 java.io.File;
24 import java.io.FileInputStream;
25 import java.io.IOException;
26 import java.util.Properties;
27
28 import junit.framework.Test;
29 import junit.framework.TestCase;
30 import junit.framework.TestSuite;
31
32 import org.apache.log4j.Level;
33 import org.apache.log4j.LogManager;
34 import org.apache.log4j.PropertyConfiguratorTest;
35 import org.apache.log4j.xml.XLevel;
36
37
38
39
40
41
42
43 public class OptionConverterTestCase extends TestCase {
44
45 Properties props;
46
47 public OptionConverterTestCase(String name) {
48 super(name);
49 }
50
51 public
52 void setUp() {
53 props = new Properties();
54 props.put("TOTO", "wonderful");
55 props.put("key1", "value1");
56 props.put("key2", "value2");
57
58 props.put("line.separator", System.getProperty("line.separator"));
59
60 props.put("java.home", System.getProperty("java.home"));
61 System.setProperties(props);
62
63
64 }
65
66 public
67 void tearDown() {
68 props = null;
69 LogManager.resetConfiguration();
70 }
71
72 public
73 void varSubstTest1() {
74 String r;
75
76 r = OptionConverter.substVars("hello world.", null);
77 assertEquals("hello world.", r);
78
79 r = OptionConverter.substVars("hello ${TOTO} world.", null);
80
81 assertEquals("hello wonderful world.", r);
82 }
83
84
85 public
86 void varSubstTest2() {
87 String r;
88
89 r = OptionConverter.substVars("Test2 ${key1} mid ${key2} end.", null);
90 assertEquals("Test2 value1 mid value2 end.", r);
91 }
92
93 public
94 void varSubstTest3() {
95 String r;
96
97 r = OptionConverter.substVars(
98 "Test3 ${unset} mid ${key1} end.", null);
99 assertEquals("Test3 mid value1 end.", r);
100 }
101
102 public
103 void varSubstTest4() {
104 String val = "Test4 ${incomplete ";
105 try {
106 OptionConverter.substVars(val, null);
107 }
108 catch(IllegalArgumentException e) {
109 String errorMsg = e.getMessage();
110
111 assertEquals('"'+val
112 + "\" has no closing brace. Opening brace at position 6.",
113 errorMsg);
114 }
115 }
116
117 public
118 void varSubstTest5() {
119 Properties props = new Properties();
120 props.put("p1", "x1");
121 props.put("p2", "${p1}");
122 String res = OptionConverter.substVars("${p2}", props);
123 System.out.println("Result is ["+res+"].");
124 assertEquals(res, "x1");
125 }
126
127
128
129
130
131
132 public void testInputStream() throws IOException {
133 File file = new File("input/filter1.properties");
134 assertTrue(file.exists());
135 FileInputStream inputStream = new FileInputStream(file);
136 try {
137 OptionConverter.selectAndConfigure(inputStream, null, LogManager.getLoggerRepository());
138 } finally {
139 inputStream.close();
140 }
141 new PropertyConfiguratorTest(this.getClass().getName()).validateNested();
142 }
143
144 public
145 void toLevelTest1() {
146 String val = "INFO";
147 Level p = OptionConverter.toLevel(val, null);
148 assertEquals(p, Level.INFO);
149 }
150
151 public
152 void toLevelTest2() {
153 String val = "INFO#org.apache.log4j.xml.XLevel";
154 Level p = OptionConverter.toLevel(val, null);
155 assertEquals(p, Level.INFO);
156 }
157
158 public
159 void toLevelTest3() {
160 String val = "TRACE#org.apache.log4j.xml.XLevel";
161 Level p = OptionConverter.toLevel(val, null);
162 assertEquals(p, XLevel.TRACE);
163 }
164
165 public
166 void toLevelTest4() {
167 String val = "TR#org.apache.log4j.xml.XLevel";
168 Level p = OptionConverter.toLevel(val, null);
169 assertEquals(p, null);
170 }
171
172 public
173 void toLevelTest5() {
174 String val = "INFO#org.apache.log4j.xml.TOTO";
175 Level p = OptionConverter.toLevel(val, null);
176 assertEquals(p, null);
177 }
178
179 public
180 static
181 Test suite() {
182 TestSuite suite = new TestSuite();
183 suite.addTest(new OptionConverterTestCase("varSubstTest5"));
184 suite.addTest(new OptionConverterTestCase("varSubstTest1"));
185 suite.addTest(new OptionConverterTestCase("varSubstTest2"));
186 suite.addTest(new OptionConverterTestCase("varSubstTest3"));
187 suite.addTest(new OptionConverterTestCase("varSubstTest4"));
188
189 suite.addTest(new OptionConverterTestCase("testInputStream"));
190
191 suite.addTest(new OptionConverterTestCase("toLevelTest1"));
192 suite.addTest(new OptionConverterTestCase("toLevelTest2"));
193 suite.addTest(new OptionConverterTestCase("toLevelTest3"));
194 suite.addTest(new OptionConverterTestCase("toLevelTest4"));
195 suite.addTest(new OptionConverterTestCase("toLevelTest5"));
196 return suite;
197 }
198
199 }