cvs commit: jakarta-log4j/tests/src/java/org/apache/log4j/varia LevelRangeFilterTestCase.java
[email protected] 25 May 2002 06:14:56 -0000
| Newsgroups | gmane.comp.jakarta.log4j.cvs |
|---|---|
| Message-ID | <[email protected]> |
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;
}
}