blob: 63f3af9b6fa30279e7114169630227b91252d375 [file]
// Log4j uses the JUnit framework for internal unit testing. JUnit
// is available from "http://www.junit.org".
package org.apache.log4j.test;
import org.apache.log4j.helpers.OptionConverter;
import org.apache.log4j.Level;
import org.apache.log4j.xml.examples.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 UnitTestOptionConverter extends TestCase {
Properties props;
public UnitTestOptionConverter(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 toLevelTest1() {
String val = "INFO";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, Level.INFO);
}
public
void toLevelTest2() {
String val = "INFO#org.apache.log4j.xml.examples.XLevel";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, Level.INFO);
}
public
void toLevelTest3() {
String val = "TRACE#org.apache.log4j.xml.examples.XLevel";
Level p = OptionConverter.toLevel(val, null);
assertEquals(p, XLevel.TRACE);
}
public
void toLevelTest4() {
String val = "TR#org.apache.log4j.xml.examples.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 UnitTestOptionConverter("varSubstTest1"));
suite.addTest(new UnitTestOptionConverter("varSubstTest2"));
suite.addTest(new UnitTestOptionConverter("varSubstTest3"));
suite.addTest(new UnitTestOptionConverter("varSubstTest4"));
suite.addTest(new UnitTestOptionConverter("toLevelTest1"));
suite.addTest(new UnitTestOptionConverter("toLevelTest2"));
suite.addTest(new UnitTestOptionConverter("toLevelTest3"));
suite.addTest(new UnitTestOptionConverter("toLevelTest4"));
suite.addTest(new UnitTestOptionConverter("toLevelTest5"));
return suite;
}
}