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 StringMatchFilter.
28   */
29  public class StringMatchFilterTest extends TestCase {
30  
31      /***
32       * Create new test instance.
33       *
34       * @param name test name.
35       */
36      public StringMatchFilterTest(final String name) {
37          super(name);
38      }
39  
40      /***
41       * Check that StringMatchFilter.decide() returns Filter.NEUTRAL
42       *   when string to match is unspecified.
43       */
44      public void test1() {
45          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
46                  Logger.getLogger(StringMatchFilterTest.class),
47                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
48          Filter filter = new StringMatchFilter();
49          filter.activateOptions();
50          assertEquals(Filter.NEUTRAL, filter.decide(event));
51      }
52  
53      /***
54       * Check that StringMatchFilter.decide() returns Filter.NEUTRAL
55       *   when string to match does not appear in message.
56       */
57      public void test2() {
58          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
59                  Logger.getLogger(StringMatchFilterTest.class),
60                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
61          StringMatchFilter filter = new StringMatchFilter();
62          filter.setStringToMatch("Monde");
63          filter.activateOptions();
64          assertEquals(Filter.NEUTRAL, filter.decide(event));
65      }
66  
67      /***
68       * Check that StringMatchFilter.decide() returns Filter.ACCEPT
69       *   when string to match does appear in message.
70       */
71      public void test3() {
72          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
73                  Logger.getLogger(StringMatchFilterTest.class),
74                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
75          StringMatchFilter filter = new StringMatchFilter();
76          filter.setStringToMatch("World");
77          filter.activateOptions();
78          assertEquals(Filter.ACCEPT, filter.decide(event));
79      }
80  
81      /***
82       * Check that StringMatchFilter.decide() returns Filter.DENY
83       *   when string to match does appear in message and
84       *   accept on match is false.
85       */
86      public void test4() {
87          LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
88                  Logger.getLogger(StringMatchFilterTest.class),
89                  System.currentTimeMillis(), Level.INFO, "Hello, World", null);
90          StringMatchFilter filter = new StringMatchFilter();
91          filter.setStringToMatch("World");
92          filter.setAcceptOnMatch(false);
93          filter.activateOptions();
94          assertEquals(Filter.DENY, filter.decide(event));
95      }
96  
97      /***
98       * Check that StringMatchFilter.decide() returns Filter.NEUTRAL
99       *   when string to match does appear in message but differs in case.
100      */
101     public void test5() {
102         LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
103                 Logger.getLogger(StringMatchFilterTest.class),
104                 System.currentTimeMillis(), Level.INFO, "Hello, World", null);
105         StringMatchFilter filter = new StringMatchFilter();
106         filter.setStringToMatch("world");
107         filter.activateOptions();
108         assertEquals(Filter.NEUTRAL, filter.decide(event));
109     }
110 
111 }
112