Initial OpenECOMP APPC commit
[appc.git] / app-c / appc / appc-adapters / appc-chef-adapter / appc-chef-adapter-bundle / src / test / java / org / openecomp / appc / test / InterceptLogger.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : APP-C
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights
6  *                                              reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22
23 package org.openecomp.appc.test;
24
25 import java.text.MessageFormat;
26 import java.util.ArrayList;
27 import java.util.List;
28
29 import org.slf4j.Marker;
30
31 import ch.qos.logback.classic.Level;
32
33 /**
34  * This class is used as an intercept logger that can be used in testing to intercept and record all messages that are
35  * logged, thus allowing a junit test case to examine the log output and make assertions.
36  */
37 public class InterceptLogger implements org.slf4j.Logger {
38
39     /**
40      * This inner class represents an intercepted log event
41      */
42     public class LogRecord {
43         private Level level;
44         private String message;
45         private long timestamp;
46         private Throwable t;
47
48         public LogRecord(Level level, String message) {
49             setLevel(level);
50             setTimestamp(System.currentTimeMillis());
51             setMessage(message);
52         }
53
54         public LogRecord(Level level, String message, Throwable t) {
55             this(level, message);
56             setThrowable(t);
57         }
58
59         /**
60          * @return the value of level
61          */
62         public Level getLevel() {
63             return level;
64         }
65
66         /**
67          * @return the value of message
68          */
69         public String getMessage() {
70             return message;
71         }
72
73         /**
74          * @return the value of timestamp
75          */
76         public long getTimestamp() {
77             return timestamp;
78         }
79
80         /**
81          * @param level
82          *            the value for level
83          */
84         public void setLevel(Level level) {
85             this.level = level;
86         }
87
88         /**
89          * @param message
90          *            the value for message
91          */
92         public void setMessage(String message) {
93             this.message = message;
94         }
95
96         /**
97          * @param timestamp
98          *            the value for timestamp
99          */
100         public void setTimestamp(long timestamp) {
101             this.timestamp = timestamp;
102         }
103
104         /**
105          * @return the value of t
106          */
107         public Throwable getThrowable() {
108             return t;
109         }
110
111         /**
112          * @param t
113          *            the value for t
114          */
115         public void setThrowable(Throwable t) {
116             this.t = t;
117         }
118
119     }
120
121     /**
122      * The list of all intercepted log events
123      */
124     private List<LogRecord> events;
125
126     /**
127      * Create the intercept logger
128      */
129     public InterceptLogger() {
130         events = new ArrayList<LogRecord>(1000);
131     }
132
133     /**
134      * @return Returns all intercepted log events
135      */
136     public List<LogRecord> getLogRecords() {
137         return events;
138     }
139
140     /**
141      * Clears all log events
142      */
143     public void clear() {
144         events.clear();
145     }
146
147     @Override
148     public void debug(Marker marker, String msg) {
149         debug(msg);
150     }
151
152     @Override
153     public void debug(Marker marker, String format, Object arg) {
154         debug(MessageFormat.format(format, arg));
155     }
156
157     @Override
158     public void debug(Marker marker, String format, Object... arguments) {
159         debug(MessageFormat.format(format, arguments));
160     }
161
162     @Override
163     public void debug(Marker marker, String format, Object arg1, Object arg2) {
164         debug(MessageFormat.format(format, arg1, arg2));
165     }
166
167     @Override
168     public void debug(Marker marker, String msg, Throwable t) {
169         debug(msg, t);
170     }
171
172     @Override
173     public void debug(String msg) {
174         events.add(new LogRecord(Level.DEBUG, msg));
175     }
176
177     @Override
178     public void debug(String format, Object arg) {
179         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg)));
180     }
181
182     @Override
183     public void debug(String format, Object... arguments) {
184         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arguments)));
185     }
186
187     @Override
188     public void debug(String format, Object arg1, Object arg2) {
189         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg1, arg2)));
190     }
191
192     @Override
193     public void debug(String msg, Throwable t) {
194         events.add(new LogRecord(Level.DEBUG, msg, t));
195     }
196
197     @Override
198     public void error(Marker marker, String msg) {
199         error(msg);
200     }
201
202     @Override
203     public void error(Marker marker, String format, Object arg) {
204         error(format, arg);
205     }
206
207     @Override
208     public void error(Marker marker, String format, Object... arguments) {
209         error(format, arguments);
210     }
211
212     @Override
213     public void error(Marker marker, String format, Object arg1, Object arg2) {
214         error(format, arg1, arg2);
215     }
216
217     @Override
218     public void error(Marker marker, String msg, Throwable t) {
219         events.add(new LogRecord(Level.ERROR, msg, t));
220     }
221
222     @Override
223     public void error(String msg) {
224         events.add(new LogRecord(Level.ERROR, msg));
225     }
226
227     @Override
228     public void error(String format, Object arg) {
229         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg)));
230     }
231
232     @Override
233     public void error(String format, Object... arguments) {
234         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arguments)));
235     }
236
237     @Override
238     public void error(String format, Object arg1, Object arg2) {
239         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg1, arg2)));
240     }
241
242     @Override
243     public void error(String msg, Throwable t) {
244         events.add(new LogRecord(Level.ERROR, msg, t));
245     }
246
247     @Override
248     public String getName() {
249         return null;
250     }
251
252     @Override
253     public void info(Marker marker, String msg) {
254         info(msg);
255     }
256
257     @Override
258     public void info(Marker marker, String format, Object arg) {
259         info(format, arg);
260     }
261
262     @Override
263     public void info(Marker marker, String format, Object... arguments) {
264         info(format, arguments);
265     }
266
267     @Override
268     public void info(Marker marker, String format, Object arg1, Object arg2) {
269         info(format, arg1, arg2);
270     }
271
272     @Override
273     public void info(Marker marker, String msg, Throwable t) {
274         events.add(new LogRecord(Level.INFO, msg, t));
275     }
276
277     @Override
278     public void info(String msg) {
279         events.add(new LogRecord(Level.INFO, msg));
280     }
281
282     @Override
283     public void info(String format, Object arg) {
284         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg)));
285     }
286
287     @Override
288     public void info(String format, Object... arguments) {
289         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arguments)));
290     }
291
292     @Override
293     public void info(String format, Object arg1, Object arg2) {
294         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg1, arg2)));
295     }
296
297     @Override
298     public void info(String msg, Throwable t) {
299         events.add(new LogRecord(Level.INFO, msg, t));
300     }
301
302     @Override
303     public boolean isDebugEnabled() {
304         return true;
305     }
306
307     @Override
308     public boolean isDebugEnabled(Marker marker) {
309         return true;
310     }
311
312     @Override
313     public boolean isErrorEnabled() {
314         return true;
315     }
316
317     @Override
318     public boolean isErrorEnabled(Marker marker) {
319         return true;
320     }
321
322     @Override
323     public boolean isInfoEnabled() {
324         return true;
325     }
326
327     @Override
328     public boolean isInfoEnabled(Marker marker) {
329         return true;
330     }
331
332     @Override
333     public boolean isTraceEnabled() {
334         return true;
335     }
336
337     @Override
338     public boolean isTraceEnabled(Marker marker) {
339         return true;
340     }
341
342     @Override
343     public boolean isWarnEnabled() {
344         return true;
345     }
346
347     @Override
348     public boolean isWarnEnabled(Marker marker) {
349         return true;
350     }
351
352     @Override
353     public void trace(Marker marker, String msg) {
354         trace(msg);
355     }
356
357     @Override
358     public void trace(Marker marker, String format, Object arg) {
359         trace(format, arg);
360     }
361
362     @Override
363     public void trace(Marker marker, String format, Object... argArray) {
364         trace(format, argArray);
365     }
366
367     @Override
368     public void trace(Marker marker, String format, Object arg1, Object arg2) {
369         trace(format, arg1, arg2);
370     }
371
372     @Override
373     public void trace(Marker marker, String msg, Throwable t) {
374         trace(msg, t);
375     }
376
377     @Override
378     public void trace(String msg) {
379         events.add(new LogRecord(Level.TRACE, msg));
380     }
381
382     @Override
383     public void trace(String format, Object arg) {
384         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg)));
385     }
386
387     @Override
388     public void trace(String format, Object... arguments) {
389         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arguments)));
390     }
391
392     @Override
393     public void trace(String format, Object arg1, Object arg2) {
394         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg1, arg2)));
395     }
396
397     @Override
398     public void trace(String msg, Throwable t) {
399         events.add(new LogRecord(Level.TRACE, msg, t));
400     }
401
402     @Override
403     public void warn(Marker marker, String msg) {
404         warn(msg);
405     }
406
407     @Override
408     public void warn(Marker marker, String format, Object arg) {
409         warn(format, arg);
410     }
411
412     @Override
413     public void warn(Marker marker, String format, Object... arguments) {
414         warn(format, arguments);
415     }
416
417     @Override
418     public void warn(Marker marker, String format, Object arg1, Object arg2) {
419         warn(format, arg1, arg2);
420     }
421
422     @Override
423     public void warn(Marker marker, String msg, Throwable t) {
424         events.add(new LogRecord(Level.WARN, msg, t));
425     }
426
427     @Override
428     public void warn(String msg) {
429         events.add(new LogRecord(Level.WARN, msg));
430     }
431
432     @Override
433     public void warn(String format, Object arg) {
434         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg)));
435     }
436
437     @Override
438     public void warn(String format, Object... arguments) {
439         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arguments)));
440     }
441
442     @Override
443     public void warn(String format, Object arg1, Object arg2) {
444         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg1, arg2)));
445     }
446
447     @Override
448     public void warn(String msg, Throwable t) {
449         events.add(new LogRecord(Level.WARN, msg, t));
450     }
451 }