View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.log4j.filter;
18  
19  import junit.framework.TestCase;
20  import org.apache.log4j.Level;
21  import org.apache.log4j.Logger;
22  import org.apache.log4j.spi.Filter;
23  import org.apache.log4j.spi.LoggingEvent;
24  
25  
26  /***
27   * Unit tests for LoggerMatchFilter.
28   */
29  public class LoggerMatchFilterTest extends TestCase {
30  
31      /***
32       * Create new test instance.
33       *
34       * @param name test name.
35       */
36      public LoggerMatchFilterTest(final String name) {
37          super(name);
38      }
39  
40      /***
41       * Check that LoggerMatchFilter.decide() with unspecified level
42       *    returns Filter.ACCEPT for root logger.
43       */
44      public void test1() {
45          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
46                  Logger.getRootLogger(),
47                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
48          Filter filter = new LoggerMatchFilter();
49          filter.activateOptions();
50          assertEquals(Filter.ACCEPT, filter.decide(event));
51      }
52  
53      /***
54       * Check that LoggerMatchFilter.decide() with unspecified level
55       *    returns Filter.DENY for root logger when accept on match is false.
56       */
57      public void test2() {
58          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
59                  Logger.getRootLogger(),
60                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
61          LoggerMatchFilter filter = new LoggerMatchFilter();
62          filter.setAcceptOnMatch(false);
63          filter.activateOptions();
64          assertEquals(Filter.DENY, filter.decide(event));
65      }
66  
67      /***
68       * Check that LoggerMatchFilter.decide() with unspecified level
69       *    returns Filter.NEUTRAL for non-root logger.
70       */
71      public void test3() {
72          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
73                  Logger.getLogger("org.apache.log4j.filter.LoggerMatchFilterTest"),
74                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
75          Filter filter = new LoggerMatchFilter();
76          filter.activateOptions();
77          assertEquals(Filter.NEUTRAL, filter.decide(event));
78      }
79  
80      /***
81       * Check that LoggerMatchFilter.decide()
82       *    returns Filter.ACCEPT for matching logger.
83       */
84      public void test4() {
85          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
86                  Logger.getLogger("org.apache.log4j.filter.LoggerMatchFilterTest"),
87                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
88          LoggerMatchFilter filter = new LoggerMatchFilter();
89          filter.setLoggerToMatch("org.apache.log4j.filter.LoggerMatchFilterTest");
90          filter.activateOptions();
91          assertEquals(Filter.ACCEPT, filter.decide(event));
92      }
93  
94  }
95