/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Log4j uses the JUnit framework for internal unit testing. JUnit
// is available from "http://www.junit.org".
package org.apache.log4j.helpers;
import org.apache.log4j.helpers.OptionConverter;
import org.apache.log4j.Level;
import org.apache.log4j.xml.XLevel;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.framework.Test;
import java.util.Properties;
/**
Test variable substitution code.
@author Ceki Gülcü
@since 1.0
*/
public class OptionConverterTestCase extends TestCase {
Properties props;
public OptionConverterTestCase(String name) {
super(name);
}
public
void setUp() {
props = new Properties();
props.put("TOTO", "wonderful");
props.put("key1", "value1");
props.put("key2", "value2");
System.setProperties(props);
}
public
void tearDown() {
props = null;
}
public
void varSubstTest1() {
String r;
r = OptionConverter.substVars("hello world.", null);
assertEquals("hello world.", r);
r = OptionConverter.substVars("hello ${TOTO} world.", null);
assertEquals("hello wonderful world.", r);
}
public
void varSubstTest2() {
String r;
r = OptionConverter.substVars("Test2 ${key1} mid ${key2} end.", null);
assertEquals("Test2 value1 mid value2 end.", r);
}
public
void varSubstTest3() {
String r;
r = OptionConverter.substVars(
"Test3 ${unset} mid ${key1} end.", null);
assertEquals("Test3 mid value1 end.", r);
}
public
void varSubstTest4() {
String res;
String val = "Test4 ${incomplete ";
try {
res = OptionConverter.substVars(val, null);
}
catch(IllegalArgumentException e) {
String errorMsg = e.getMessage();
//System.out.println('['+errorMsg+']');
assertEquals('"'+val
+ "\" has no closing brace. Opening brace at position 6.",
errorMsg);
}
}
public
void varSubstTest5() {
Properties props = new Properties();
props.put("p1", "x1");
props.put("p2", "${p1}");
String res = OptionConverter.substVars("${p2}", props);
System.out.println("Result is ["+res+"].");
assertEquals(res, "x1");
}
public
void toLevelTest1() {
String val = "INFO";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, Level.INFO);
}
public
void toLevelTest2() {
String val = "INFO#org.apache.log4j.xml.XLevel";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, Level.INFO);
}
public
void toLevelTest3() {
String val = "TRACE#org.apache.log4j.xml.XLevel";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, XLevel.TRACE);
}
public
void toLevelTest4() {
String val = "TR#org.apache.log4j.xml.XLevel";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, null);
}
public
void toLevelTest5() {
String val = "INFO#org.apache.log4j.xml.TOTO";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, null);
}
public
static
Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new OptionConverterTestCase("varSubstTest5"));
suite.addTest(new OptionConverterTestCase("varSubstTest1"));
suite.addTest(new OptionConverterTestCase("varSubstTest2"));
suite.addTest(new OptionConverterTestCase("varSubstTest3"));
suite.addTest(new OptionConverterTestCase("varSubstTest4"));
suite.addTest(new OptionConverterTestCase("toLevelTest1"));
suite.addTest(new OptionConverterTestCase("toLevelTest2"));
suite.addTest(new OptionConverterTestCase("toLevelTest3"));
suite.addTest(new OptionConverterTestCase("toLevelTest4"));
suite.addTest(new OptionConverterTestCase("toLevelTest5"));
return suite;
}
}
|