/* * 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.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 val = "Test4 ${incomplete "; try { 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; } }