Logging changes and unit tests
[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_DENY()  {
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.invalid.jetty");
92         assertEquals(FilterReply.DENY, filter.decide(event));
93     }
94
95     @Test
96     public void Given_Event_with_level_info_and_valid_jetty_string_then_metrics_filter_DENY()  {
97         final MetricsFilter filter = new MetricsFilter();
98         filter.start();
99         final LoggingEvent event = new LoggingEvent();
100         event.setLevel(Level.INFO);
101         event.setMessage("org.eclipse.jetty");
102         assertEquals(FilterReply.DENY, filter.decide(event));
103
104     }
105
106     @Test
107     public void Given_Event_with_level_not_info_and_valid_jetty_string_then_metrics_filter_DENY()  {
108         final MetricsFilter filter = new MetricsFilter();
109         filter.start();
110         final LoggingEvent event = new LoggingEvent();
111         event.setLevel(Level.DEBUG);
112         event.setMessage("org.eclipse.jetty");
113         assertEquals(FilterReply.DENY, filter.decide(event));
114
115     }
116
117     @Test
118     public void Given_Event_with_level_not_info_and_invalid_jetty_string_and_valid_logger_then_metrics_filter_DENY() {
119         final MetricsFilter filter = new MetricsFilter();
120         filter.start();
121         final LoggingEvent event = new LoggingEvent();
122         event.setLevel(Level.DEBUG);
123         event.setMessage("org.invalid.jetty");
124         event.setLoggerName("org.eclipse.jetty");
125         assertEquals(FilterReply.DENY, filter.decide(event));
126     }
127
128     @Test
129     public void Given_Event_with_level_not_info_and_invalid_jetty_string_and_invalid_logger_then_metrics_filter_DENY() {
130         final MetricsFilter filter = new MetricsFilter();
131         filter.start();
132         final LoggingEvent event = new LoggingEvent();
133         event.setLevel(Level.DEBUG);
134         event.setMessage("org.invalid.jetty");
135         event.setLoggerName("org.eclipse.jetty");
136         event.setLoggerName("org.invalid.jetty");
137         assertEquals(FilterReply.DENY, filter.decide(event));
138     }
139
140     @Test
141     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_in_status_list_and_valid_logger_then_metrics_filter_DENY() {
142         final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
143         final MetricsFilter filter = new MetricsFilter();
144         filter.start();
145
146         for (final String status : validStatus) {
147             final LoggingEvent event = new LoggingEvent();
148             event.setLevel(Level.INFO);
149             event.setMessage(status);
150             event.setLoggerName("org.eclipse.jetty");
151             assertEquals(FilterReply.DENY, filter.decide(event));
152         }
153     }
154
155     @Test
156     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_in_status_list_and_invalid_logger_then_metrics_filter_DENY() {
157         final List<String> validStatus = asList("DEL|", "PUB|", "PBF|", "EXP|", "DLX|");
158         final MetricsFilter filter = new MetricsFilter();
159         filter.start();
160
161         for (final String status : validStatus) {
162             final LoggingEvent event = new LoggingEvent();
163             event.setLevel(Level.INFO);
164             event.setMessage(status);
165             event.setLoggerName("org.invalid.jetty");
166             assertEquals(FilterReply.DENY, filter.decide(event));
167         }
168     }
169
170     @Test
171     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_not_in_status_list_and_valid_logger_then_metrics_filter_DENY() {
172         final MetricsFilter filter = new MetricsFilter();
173         filter.start();
174         final LoggingEvent event = new LoggingEvent();
175         event.setLevel(Level.INFO);
176         event.setMessage("Invalid status");
177         event.setLoggerName("org.eclipse.jetty");
178         assertEquals(FilterReply.DENY, filter.decide(event));
179     }
180
181     @Test
182     public void Given_Event_with_level_info_and_invalid_jetty_string_and_status_not_in_status_list_and_invalid_logger_then_metrics_filter_ACCEPT() {
183         final MetricsFilter filter = new MetricsFilter();
184         filter.start();
185         final LoggingEvent event = new LoggingEvent();
186         event.setLevel(Level.INFO);
187         event.setMessage("Invalid status");
188         event.setLoggerName("org.invalid.jetty");
189         assertEquals(FilterReply.ACCEPT, filter.decide(event));
190     }
191
192     @Test
193     public void Given_Event_with_level_debug_and_valid_jetty_string_then_debug_filter_DENY()  {
194         final DebugFilter filter = new DebugFilter();
195         filter.start();
196         final LoggingEvent event = new LoggingEvent();
197         event.setLevel(Level.DEBUG);
198         event.setMessage("org.eclipse.jetty");
199         assertEquals(FilterReply.DENY, filter.decide(event));
200
201     }
202
203     @Test
204     public void Given_Event_with_level_not_debug_and_valid_jetty_string_then_debug_filter_DENY()  {
205         final DebugFilter filter = new DebugFilter();
206         filter.start();
207         final LoggingEvent event = new LoggingEvent();
208         event.setLevel(Level.INFO);
209         event.setMessage("org.eclipse.jetty");
210         assertEquals(FilterReply.DENY, filter.decide(event));
211
212     }
213
214     @Test
215     public void Given_Event_with_level_not_debug_and_not_valid_jetty_string_then_debug_filter_DENY()  {
216         final DebugFilter filter = new DebugFilter();
217         filter.start();
218         final LoggingEvent event = new LoggingEvent();
219         event.setLevel(Level.INFO);
220         event.setMessage("org.invalid.jetty");
221         assertEquals(FilterReply.DENY, filter.decide(event));
222
223     }
224
225     @Test
226     public void Given_Event_with_level_debug_and_not_valid_jetty_string_then_debug_filter_ACCEPT()  {
227         final DebugFilter filter = new DebugFilter();
228         filter.start();
229         final LoggingEvent event = new LoggingEvent();
230         event.setLevel(Level.DEBUG);
231         event.setMessage("org.invalid.jetty");
232         assertEquals(FilterReply.ACCEPT, filter.decide(event));
233
234     }
235
236     @Test
237     public void Given_Event_with_level_error_and_valid_jetty_string_then_error_filter_DENY()  {
238         final ErrorFilter filter = new ErrorFilter();
239         filter.start();
240         final LoggingEvent event = new LoggingEvent();
241         event.setLevel(Level.ERROR);
242         event.setMessage("org.eclipse.jetty");
243         assertEquals(FilterReply.DENY, filter.decide(event));
244
245     }
246
247     @Test
248     public void Given_Event_with_level_warn_and_valid_jetty_string_then_error_filter_DENY()  {
249         final ErrorFilter filter = new ErrorFilter();
250         filter.start();
251         final LoggingEvent event = new LoggingEvent();
252         event.setLevel(Level.WARN);
253         event.setMessage("org.eclipse.jetty");
254         assertEquals(FilterReply.DENY, filter.decide(event));
255
256     }
257
258     @Test
259     public void Given_Event_with_level_not_warn_or_error_and_valid_jetty_string_then_error_filter_DENY()  {
260         final ErrorFilter filter = new ErrorFilter();
261         filter.start();
262         final LoggingEvent event = new LoggingEvent();
263         event.setLevel(Level.INFO);
264         event.setMessage("org.eclipse.jetty");
265         assertEquals(FilterReply.DENY, filter.decide(event));
266
267     }
268
269     @Test
270     public void Given_Event_with_level_not_warn_or_error_and_invalid_jetty_string_then_error_filter_DENY()  {
271         final ErrorFilter filter = new ErrorFilter();
272         filter.start();
273         final LoggingEvent event = new LoggingEvent();
274         event.setLevel(Level.INFO);
275         event.setMessage("org.invalid.jetty");
276         assertEquals(FilterReply.DENY, filter.decide(event));
277
278     }
279
280     @Test
281     public void Given_Event_with_level_warn_and_invalid_jetty_string_then_error_filter_ACCEPT()  {
282         final ErrorFilter filter = new ErrorFilter();
283         filter.start();
284         final LoggingEvent event = new LoggingEvent();
285         event.setLevel(Level.WARN);
286         event.setMessage("org.invalid.jetty");
287         assertEquals(FilterReply.ACCEPT, filter.decide(event));
288
289     }
290
291     @Test
292     public void Given_Event_with_level_error_and_invalid_jetty_string_then_error_filter_ACCEPT()  {
293         final ErrorFilter filter = new ErrorFilter();
294         filter.start();
295         final LoggingEvent event = new LoggingEvent();
296         event.setLevel(Level.ERROR);
297         event.setMessage("org.invalid.jetty");
298         assertEquals(FilterReply.ACCEPT, filter.decide(event));
299
300     }
301
302
303     @Test
304     public void Given_call_to_EelfMsgs_return_the_correct_enum(){
305         assertEquals(MESSAGE_WITH_BEHALF.toString(), "MESSAGE_WITH_BEHALF");
306     }
307
308 }