mwomack 02/05/24 23:14:56 Added: tests/src/java/org/apache/log4j/varia LevelRangeFilterTestCase.java Log: Added LevelRangeFilterTestCase. Revision Changes Path 1.1 jakarta-log4j/tests/src/java/org/apache/log4j/varia/LevelRangeFilterTestCase.java Index: LevelRangeFilterTestCase.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software * License version 1.1, a copy of which has been included with this * distribution in the LICENSE.txt file. */ package org.apache.log4j.varia; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.framework.Test; import org.apache.log4j.Logger; import org.apache.log4j.Level; import org.apache.log4j.Appender; import org.apache.log4j.FileAppender; import org.apache.log4j.Layout; import org.apache.log4j.SimpleLayout; import org.apache.log4j.varia.LevelRangeFilter; import org.apache.log4j.util.Transformer; import org.apache.log4j.util.Compare; import org.apache.log4j.util.LineNumberFilter; /** Test case for varia/LevelRangeFilter.java. <p>Please note that in the witness file some passes are not recorded. This is due to the max level being set to less than the min level, thus no messages are logged on that pass. This is correct behavior. */ public class LevelRangeFilterTestCase extends TestCase { static String ACCEPT_FILE = "output/LevelRangeFilter_accept"; static String ACCEPT_WITNESS = "witness/LevelRangeFilter_accept"; static String NEUTRAL_FILE = "output/LevelRangeFilter_neutral"; static String NEUTRAL_WITNESS = "witness/LevelRangeFilter_neutral"; Logger root; public LevelRangeFilterTestCase(String name) { super(name); } public void setUp() { root = Logger.getRootLogger(); root.removeAllAppenders(); } public void tearDown() { root.getLoggerRepository().resetConfiguration(); } public void accept() throws Exception { // set up appender Layout layout = new SimpleLayout(); Appender appender = new FileAppender(layout, ACCEPT_FILE, false); // create LevelRangeFilter LevelRangeFilter rangeFilter = new LevelRangeFilter(); // set it to accept on a match rangeFilter.setAcceptOnMatch(true); // attach match filter to appender appender.addFilter(rangeFilter); // set appender on root and set level to debug root.addAppender(appender); root.setLevel(Level.DEBUG); int passCount = 0; // test with no min or max set common("pass " + passCount + "; no min or max set"); passCount++; // test with a min set rangeFilter.setLevelMin(Level.WARN); common("pass " + passCount + "; min set to WARN, max not set"); passCount++; // create a clean filter appender.clearFilters(); rangeFilter = new LevelRangeFilter(); appender.addFilter(rangeFilter); //test with max set rangeFilter.setLevelMax(Level.WARN); common("pass " + passCount + "; min not set, max set to WARN"); passCount++; Level[] levelArray = new Level[] {Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL}; for (int x = 0; x < levelArray.length; x++) { // set the min level to match rangeFilter.setLevelMin(levelArray[x]); for (int y = levelArray.length-1; y >= 0; y--) { // set max level to match rangeFilter.setLevelMax(levelArray[y]); common("pass " + passCount + "; filter set to accept between " + levelArray[x].toString() + " and " + levelArray[y].toString() + " msgs"); // increment passCount passCount++; } } assertTrue(Compare.compare(ACCEPT_FILE, ACCEPT_WITNESS)); } public void neutral() throws Exception { // set up appender Layout layout = new SimpleLayout(); Appender appender = new FileAppender(layout, NEUTRAL_FILE, false); // create LevelRangeFilter LevelRangeFilter rangeFilter = new LevelRangeFilter(); // set it to not accept on a match rangeFilter.setAcceptOnMatch(false); // attach match filter to appender appender.addFilter(rangeFilter); // set appender on root and set level to debug root.addAppender(appender); root.setLevel(Level.DEBUG); int passCount = 0; // test with no min or max set common("pass " + passCount + "; no min or max set"); passCount++; // test with a min set rangeFilter.setLevelMin(Level.WARN); common("pass " + passCount + "; min set to WARN, max not set"); passCount++; // create a clean filter appender.clearFilters(); rangeFilter = new LevelRangeFilter(); appender.addFilter(rangeFilter); //test with max set rangeFilter.setLevelMax(Level.WARN); common("pass " + passCount + "; min not set, max set to WARN"); passCount++; Level[] levelArray = new Level[] {Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL}; for (int x = 0; x < levelArray.length; x++) { // set the min level to match rangeFilter.setLevelMin(levelArray[x]); for (int y = levelArray.length-1; y >= 0; y--) { // set max level to match rangeFilter.setLevelMax(levelArray[y]); common("pass " + passCount + "; filter set to accept between " + levelArray[x].toString() + " and " + levelArray[y].toString() + " msgs"); // increment passCount passCount++; } } assertTrue(Compare.compare(NEUTRAL_FILE, NEUTRAL_WITNESS)); } void common(String msg) { Logger logger = Logger.getLogger("test"); logger.debug(msg); logger.info(msg); logger.warn(msg); logger.error(msg); logger.fatal(msg); } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new LevelRangeFilterTestCase("accept")); suite.addTest(new LevelRangeFilterTestCase("neutral")); return suite; } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>