1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 AndFilter.
28 */
29 public class AndFilterTest extends TestCase {
30
31 /***
32 * Create new test instance.
33 *
34 * @param name test name.
35 */
36 public AndFilterTest(final String name) {
37 super(name);
38 }
39
40 /***
41 * Check that AndFilter.decide() returns Filter.ACCEPT if no filters added.
42 */
43 public void test1() {
44 LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
45 Logger.getLogger(AndFilterTest.class),
46 System.currentTimeMillis(), Level.INFO, "Hello, World", null);
47 Filter filter = new AndFilter();
48 filter.activateOptions();
49 assertEquals(Filter.ACCEPT, filter.decide(event));
50 }
51
52 /***
53 * Check that AndFilter.decide() returns Filter.ACCEPT if
54 * only nested filter returns Filter.ACCEPT.
55 */
56 public void test2() {
57 LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
58 Logger.getLogger(AndFilterTest.class),
59 System.currentTimeMillis(), Level.INFO, "Hello, World", null);
60 AndFilter filter = new AndFilter();
61 LevelMatchFilter filter1 = new LevelMatchFilter();
62 filter1.setLevelToMatch("info");
63 filter1.activateOptions();
64 filter.addFilter(filter1);
65 filter.activateOptions();
66 assertEquals(Filter.ACCEPT, filter.decide(event));
67 }
68
69 /***
70 * Check that AndFilter.decide() returns Filter.ACCEPT if
71 * two nested filters return Filter.ACCEPT.
72 */
73 public void test3() {
74 LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
75 Logger.getLogger(AndFilterTest.class),
76 System.currentTimeMillis(), Level.INFO, "Hello, World", null);
77 AndFilter filter = new AndFilter();
78 LevelMatchFilter filter1 = new LevelMatchFilter();
79 filter1.setLevelToMatch("info");
80 filter1.activateOptions();
81 filter.addFilter(filter1);
82 LevelMatchFilter filter2 = new LevelMatchFilter();
83 filter2.setLevelToMatch("info");
84 filter2.activateOptions();
85 filter.addFilter(filter2);
86 filter.activateOptions();
87 assertEquals(Filter.ACCEPT, filter.decide(event));
88 }
89
90 /***
91 * Check that AndFilter.decide() returns Filter.DENY if
92 * only nested filter returns Filter.ACCEPT
93 * and acceptOnMatch is false.
94 */
95 public void test4() {
96 LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
97 Logger.getLogger(AndFilterTest.class),
98 System.currentTimeMillis(), Level.INFO, "Hello, World", null);
99 AndFilter filter = new AndFilter();
100 LevelMatchFilter filter1 = new LevelMatchFilter();
101 filter1.setLevelToMatch("info");
102 filter1.activateOptions();
103 filter.addFilter(filter1);
104 filter.setAcceptOnMatch(false);
105 filter.activateOptions();
106 assertEquals(Filter.DENY, filter.decide(event));
107 }
108
109 /***
110 * Check that AndFilter.decide() returns Filter.NEUTRAL if
111 * nested filters return Filter.ACCEPT and Filter.DENY.
112 */
113 public void test5() {
114 LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
115 Logger.getLogger(AndFilterTest.class),
116 System.currentTimeMillis(), Level.INFO, "Hello, World", null);
117 AndFilter filter = new AndFilter();
118 LevelMatchFilter filter1 = new LevelMatchFilter();
119 filter1.setLevelToMatch("info");
120 filter1.activateOptions();
121 filter.addFilter(filter1);
122 Filter filter2 = new DenyAllFilter();
123 filter2.activateOptions();
124 filter.addFilter(filter2);
125 filter.activateOptions();
126 assertEquals(Filter.NEUTRAL, filter.decide(event));
127 }
128
129 /***
130 * Check that AndFilter.decide() returns Filter.NEUTRAL if
131 * nested filters return Filter.ACCEPT and Filter.NEUTRAL.
132 */
133 public void test6() {
134 LoggingEvent event = new LoggingEvent("org.apache.log4j.Logger",
135 Logger.getLogger(AndFilterTest.class),
136 System.currentTimeMillis(), Level.INFO, "Hello, World", null);
137 AndFilter filter = new AndFilter();
138 LevelMatchFilter filter1 = new LevelMatchFilter();
139 filter1.setLevelToMatch("info");
140 filter1.activateOptions();
141 filter.addFilter(filter1);
142 Filter filter2 = new StringMatchFilter();
143 filter2.activateOptions();
144 filter.addFilter(filter2);
145 filter.activateOptions();
146 assertEquals(Filter.NEUTRAL, filter.decide(event));
147 }
148
149 }
150