More bug fix and refactoring
[dmaap/datarouter.git] / datarouter-node / src / test / java / org / onap / dmaap / datarouter / node / LogbackFilterTest.java
1 /*******************************************************************************
2  * ============LICENSE_START==================================================
3  * * org.onap.dmaap
4  * * ===========================================================================
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * * ===========================================================================
7  * * Licensed under the Apache License, Version 2.0 (the "License");
8  * * you may not use this file except in compliance with the License.
9  * * You may obtain a copy of the License at
10  * *
11  *  *      http://www.apache.org/licenses/LICENSE-2.0
12  * *
13  *  * Unless required by applicable law or agreed to in writing, software
14  * * distributed under the License is distributed on an "AS IS" BASIS,
15  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * * See the License for the specific language governing permissions and
17  * * limitations under the License.
18  * * ============LICENSE_END====================================================
19  * *
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  * *
22  ******************************************************************************/
23
24 package org.onap.dmaap.datarouter.node;
25
26 import static java.util.Arrays.asList;
27 import static org.junit.Assert.assertEquals;
28 import static org.onap.dmaap.datarouter.node.eelf.EelfMsgs.MESSAGE_WITH_BEHALF;
29
30 import ch.qos.logback.classic.Level;
31 import ch.qos.logback.classic.spi.LoggingEvent;
32 import ch.qos.logback.core.spi.FilterReply;
33 import java.util.List;
34 import org.junit.Test;
35 import org.onap.dmaap.datarouter.node.eelf.AuditFilter;
36 import org.onap.dmaap.datarouter.node.eelf.DebugFilter;
37 import org.onap.dmaap.datarouter.node.eelf.ErrorFilter;
38 import org.onap.dmaap.datarouter.node.eelf.JettyFilter;
39 import org.onap.dmaap.datarouter.node.eelf.MetricsFilter;
40
41 public class LogbackFilterTest {
42
43     @Test
44     public void Given_Event_with_valid_status_then_audit_Filter_ACCEPT()  {
45         final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
46         final AuditFilter filter = new AuditFilter();
47         filter.start();
48
49         for (final String status : validStatus) {
50             final LoggingEvent event = new LoggingEvent();
51             event.setMessage("Test " + status);
52             assertEquals(FilterReply.ACCEPT, filter.decide(event));
53         }
54     }
55
56     @Test
57     public void Given_Event_with_invalid_status_then_audit_Filter_DENY()  {
58         final AuditFilter filter = new AuditFilter();
59         filter.start();
60         final LoggingEvent event = new LoggingEvent();
61         event.setMessage("Invalid status");
62         assertEquals(FilterReply.DENY, filter.decide(event));
63     }
64
65     @Test
66     public void Given_Event_with_valid_jetty_string_and_invalid_logger_then_jetty_Filter_ACCEPT()  {
67         final JettyFilter filter = new JettyFilter();
68         filter.start();
69         final LoggingEvent event = new LoggingEvent();
70         event.setMessage("org.eclipse.jetty");
71         event.setLoggerName("org.invalid.jetty");
72         assertEquals(FilterReply.ACCEPT, filter.decide(event));
73     }
74
75     @Test
76     public void Given_Event_with_valid_jetty_string_and_valid_logger_then_jetty_Filter_ACCEPT()  {
77         final JettyFilter filter = new JettyFilter();
78         filter.start();
79         final LoggingEvent event = new LoggingEvent();
80         event.setMessage("org.eclipse.jetty");
81         event.setLoggerName("org.eclipse.jetty");
82         assertEquals(FilterReply.ACCEPT, filter.decide(event));
83     }
84
85     @Test
86     public void Given_Event_with_invalid_jetty_string_and_valid_logger_then_jetty_Filter_ACCEPT()  {
87         final JettyFilter filter = new JettyFilter();
88         filter.start();
89         final LoggingEvent event = new LoggingEvent();
90         event.setMessage("org.invalid.jetty");
91         event.setLoggerName("org.eclipse.jetty");
92         assertEquals(FilterReply.ACCEPT, filter.decide(event));
93     }
94
95     @Test
96     public void Given_Event_with_invalid_jetty_string_and_invalid_logger_then_jetty_Filter_DENY()  {
97         final JettyFilter filter = new JettyFilter();
98         filter.start();
99         final LoggingEvent event = new LoggingEvent();
100         event.setMessage("org.invalid.jetty");
101         event.setLoggerName("org.invalid.jetty");
102         assertEquals(FilterReply.DENY, filter.decide(event));
103     }
104
105     @Test
106     public void Given_Event_with_level_info_and_valid_jetty_string_then_metrics_filter_DENY()  {
107         final MetricsFilter filter = new MetricsFilter();
108         filter.start();
109         final LoggingEvent event = new LoggingEvent();
110         event.setLevel(Level.INFO);
111         event.setMessage("org.eclipse.jetty");
112         assertEquals(FilterReply.DENY, filter.decide(event));
113
114     }
115
116     @Test
117     public void Given_Event_with_level_not_info_and_valid_jetty_string_then_metrics_filter_DENY()  {
118         final MetricsFilter filter = new MetricsFilter();
119         filter.start();
120         final LoggingEvent event = new LoggingEvent();
121         event.setLevel(Level.DEBUG);
122         event.setMessage("org.eclipse.jetty");
123         assertEquals(FilterReply.DENY, filter.decide(event));
124
125     }
126
127     @Test
128     public void Given_Event_with_level_not_info_and_invalid_jetty_string_and_valid_logger_then_metrics_filter_DENY() {
129         final MetricsFilter filter = new MetricsFilter();
130         filter.start();
131         final LoggingEvent event = new LoggingEvent();
132         event.setLevel(Level.DEBUG);
133         event.setMessage("org.invalid.jetty");
134         event.setLoggerName("org.eclipse.jetty");
135         assertEquals(FilterReply.DENY, filter.decide(event));
136     }
137
138     @Test
139     public void Given_Event_with_level_not_info_and_invalid_jetty_string_and_invalid_logger_then_metrics_filter_DENY() {
140         final MetricsFilter filter = new MetricsFilter();
141         filter.start();
142         final LoggingEvent event = new LoggingEvent();
143         event.setLevel(Level.DEBUG);
144         event.setMessage("org.invalid.jetty");
145         event.setLoggerName("org.eclipse.jetty");
146         event.setLoggerName("org.invalid.jetty");
147         assertEquals(FilterReply.DENY, filter.decide(event));
148     }
149
150     @Test
151     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_in_status_list_and_valid_logger_then_metrics_filter_DENY() {
152         final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
153         final MetricsFilter filter = new MetricsFilter();
154         filter.start();
155
156         for (final String status : validStatus) {
157             final LoggingEvent event = new LoggingEvent();
158             event.setLevel(Level.INFO);
159             event.setMessage(status);
160             event.setLoggerName("org.eclipse.jetty");
161             assertEquals(FilterReply.DENY, filter.decide(event));
162         }
163     }
164
165     @Test
166     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_in_status_list_and_invalid_logger_then_metrics_filter_DENY() {
167         final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
168         final MetricsFilter filter = new MetricsFilter();
169         filter.start();
170
171         for (final String status : validStatus) {
172             final LoggingEvent event = new LoggingEvent();
173             event.setLevel(Level.INFO);
174             event.setMessage(status);
175             event.setLoggerName("org.invalid.jetty");
176             assertEquals(FilterReply.DENY, filter.decide(event));
177         }
178     }
179
180     @Test
181     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_not_in_status_list_and_valid_logger_then_metrics_filter_DENY() {
182         final MetricsFilter filter = new MetricsFilter();
183         filter.start();
184         final LoggingEvent event = new LoggingEvent();
185         event.setLevel(Level.INFO);
186         event.setMessage("Invalid status");
187         event.setLoggerName("org.eclipse.jetty");
188         assertEquals(FilterReply.DENY, filter.decide(event));
189     }
190
191     @Test
192     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_not_in_status_list_and_invalid_logger_then_metrics_filter_ACCEPT() {
193         final MetricsFilter filter = new MetricsFilter();
194         filter.start();
195         final LoggingEvent event = new LoggingEvent();
196         event.setLevel(Level.INFO);
197         event.setMessage("Invalid status");
198         event.setLoggerName("org.invalid.jetty");
199         assertEquals(FilterReply.ACCEPT, filter.decide(event));
200     }
201
202     @Test
203     public void Given_Event_with_level_debug_and_valid_jetty_string_then_debug_filter_DENY()  {
204         final DebugFilter filter = new DebugFilter();
205         filter.start();
206         final LoggingEvent event = new LoggingEvent();
207         event.setLevel(Level.DEBUG);
208         event.setMessage("org.eclipse.jetty");
209         assertEquals(FilterReply.DENY, filter.decide(event));
210
211     }
212
213     @Test
214     public void Given_Event_with_level_not_debug_and_valid_jetty_string_then_debug_filter_DENY()  {
215         final DebugFilter filter = new DebugFilter();
216         filter.start();
217         final LoggingEvent event = new LoggingEvent();
218         event.setLevel(Level.INFO);
219         event.setMessage("org.eclipse.jetty");
220         assertEquals(FilterReply.DENY, filter.decide(event));
221
222     }
223
224     @Test
225     public void Given_Event_with_level_not_debug_and_not_valid_jetty_string_then_debug_filter_DENY()  {
226         final DebugFilter filter = new DebugFilter();
227         filter.start();
228         final LoggingEvent event = new LoggingEvent();
229         event.setLevel(Level.INFO);
230         event.setMessage("org.invalid.jetty");
231         assertEquals(FilterReply.DENY, filter.decide(event));
232
233     }
234
235     @Test
236     public void Given_Event_with_level_debug_and_not_valid_jetty_string_then_debug_filter_ACCEPT()  {
237         final DebugFilter filter = new DebugFilter();
238         filter.start();
239         final LoggingEvent event = new LoggingEvent();
240         event.setLevel(Level.DEBUG);
241         event.setMessage("org.invalid.jetty");
242         assertEquals(FilterReply.ACCEPT, filter.decide(event));
243
244     }
245
246     @Test
247     public void Given_Event_with_level_error_and_valid_jetty_string_then_error_filter_DENY()  {
248         final ErrorFilter filter = new ErrorFilter();
249         filter.start();
250         final LoggingEvent event = new LoggingEvent();
251         event.setLevel(Level.ERROR);
252         event.setMessage("org.eclipse.jetty");
253         assertEquals(FilterReply.DENY, filter.decide(event));
254
255     }
256
257     @Test
258     public void Given_Event_with_level_warn_and_valid_jetty_string_then_error_filter_DENY()  {
259         final ErrorFilter filter = new ErrorFilter();
260         filter.start();
261         final LoggingEvent event = new LoggingEvent();
262         event.setLevel(Level.WARN);
263         event.setMessage("org.eclipse.jetty");
264         assertEquals(FilterReply.DENY, filter.decide(event));
265
266     }
267
268     @Test
269     public void Given_Event_with_level_not_warn_or_error_and_valid_jetty_string_then_error_filter_DENY()  {
270         final ErrorFilter filter = new ErrorFilter();
271         filter.start();
272         final LoggingEvent event = new LoggingEvent();
273         event.setLevel(Level.INFO);
274         event.setMessage("org.eclipse.jetty");
275         assertEquals(FilterReply.DENY, filter.decide(event));
276
277     }
278
279     @Test
280     public void Given_Event_with_level_not_warn_or_error_and_invalid_jetty_string_then_error_filter_DENY()  {
281         final ErrorFilter filter = new ErrorFilter();
282         filter.start();
283         final LoggingEvent event = new LoggingEvent();
284         event.setLevel(Level.INFO);
285         event.setMessage("org.invalid.jetty");
286         assertEquals(FilterReply.DENY, filter.decide(event));
287
288     }
289
290     @Test
291     public void Given_Event_with_level_warn_and_invalid_jetty_string_then_error_filter_ACCEPT()  {
292         final ErrorFilter filter = new ErrorFilter();
293         filter.start();
294         final LoggingEvent event = new LoggingEvent();
295         event.setLevel(Level.WARN);
296         event.setMessage("org.invalid.jetty");
297         assertEquals(FilterReply.ACCEPT, filter.decide(event));
298
299     }
300
301     @Test
302     public void Given_Event_with_level_error_and_invalid_jetty_string_then_error_filter_ACCEPT()  {
303         final ErrorFilter filter = new ErrorFilter();
304         filter.start();
305         final LoggingEvent event = new LoggingEvent();
306         event.setLevel(Level.ERROR);
307         event.setMessage("org.invalid.jetty");
308         assertEquals(FilterReply.ACCEPT, filter.decide(event));
309
310     }
311
312     @Test
313     public void Given_call_to_EelfMsgs_return_the_correct_enum(){
314         assertEquals("MESSAGE_WITH_BEHALF", MESSAGE_WITH_BEHALF.toString());
315     }
316
317 }