2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 
   6  * ================================================================================
 
   7  * Copyright (C) 2017 Amdocs
 
   8  * =============================================================================
 
   9  * Licensed under the Apache License, Version 2.0 (the "License");
 
  10  * you may not use this file except in compliance with the License.
 
  11  * You may obtain a copy of the License at
 
  13  *      http://www.apache.org/licenses/LICENSE-2.0
 
  15  * Unless required by applicable law or agreed to in writing, software
 
  16  * distributed under the License is distributed on an "AS IS" BASIS,
 
  17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  18  * See the License for the specific language governing permissions and
 
  19  * limitations under the License.
 
  21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
 
  22  * ============LICENSE_END=========================================================
 
  26 package org.openecomp.appc.test;
 
  28 import java.text.MessageFormat;
 
  29 import java.util.ArrayList;
 
  30 import java.util.List;
 
  32 import org.slf4j.Marker;
 
  34 import ch.qos.logback.classic.Level;
 
  37  * This class is used as an intercept logger that can be used in testing to intercept and record all messages that are
 
  38  * logged, thus allowing a junit test case to examine the log output and make assertions.
 
  40 public class InterceptLogger implements org.slf4j.Logger {
 
  43      * This inner class represents an intercepted log event.
 
  45     public class LogRecord {
 
  47         private String message;
 
  48         private long timestamp;
 
  51         public LogRecord(Level level, String message) {
 
  53             setTimestamp(System.currentTimeMillis());
 
  57         public LogRecord(Level level, String message, Throwable t) {
 
  63          * @return the value of level
 
  65         public Level getLevel() {
 
  70          * @return the value of message
 
  72         public String getMessage() {
 
  77          * @return the value of timestamp
 
  79         public long getTimestamp() {
 
  87         public void setLevel(Level level) {
 
  93          *            the value for message
 
  95         public void setMessage(String message) {
 
  96             this.message = message;
 
 101          *            the value for timestamp
 
 103         public void setTimestamp(long timestamp) {
 
 104             this.timestamp = timestamp;
 
 108          * @return the value of t
 
 110         public Throwable getThrowable() {
 
 118         public void setThrowable(Throwable t) {
 
 125      * The list of all intercepted log events
 
 127     private List<LogRecord> events;
 
 130      * Create the intercept logger
 
 132     public InterceptLogger() {
 
 133         events = new ArrayList<LogRecord>(1000);
 
 137      * @return Returns all intercepted log events
 
 139     public List<LogRecord> getLogRecords() {
 
 144      * Clears all log events
 
 146     public void clear() {
 
 151     public void debug(Marker marker, String msg) {
 
 156     public void debug(Marker marker, String format, Object arg) {
 
 157         debug(MessageFormat.format(format, arg));
 
 161     public void debug(Marker marker, String format, Object... arguments) {
 
 162         debug(MessageFormat.format(format, arguments));
 
 166     public void debug(Marker marker, String format, Object arg1, Object arg2) {
 
 167         debug(MessageFormat.format(format, arg1, arg2));
 
 171     public void debug(Marker marker, String msg, Throwable t) {
 
 176     public void debug(String msg) {
 
 177         events.add(new LogRecord(Level.DEBUG, msg));
 
 181     public void debug(String format, Object arg) {
 
 182         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg)));
 
 186     public void debug(String format, Object... arguments) {
 
 187         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arguments)));
 
 191     public void debug(String format, Object arg1, Object arg2) {
 
 192         events.add(new LogRecord(Level.DEBUG, MessageFormat.format(format, arg1, arg2)));
 
 196     public void debug(String msg, Throwable t) {
 
 197         events.add(new LogRecord(Level.DEBUG, msg, t));
 
 201     public void error(Marker marker, String msg) {
 
 206     public void error(Marker marker, String format, Object arg) {
 
 211     public void error(Marker marker, String format, Object... arguments) {
 
 212         error(format, arguments);
 
 216     public void error(Marker marker, String format, Object arg1, Object arg2) {
 
 217         error(format, arg1, arg2);
 
 221     public void error(Marker marker, String msg, Throwable t) {
 
 222         events.add(new LogRecord(Level.ERROR, msg, t));
 
 226     public void error(String msg) {
 
 227         events.add(new LogRecord(Level.ERROR, msg));
 
 231     public void error(String format, Object arg) {
 
 232         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg)));
 
 236     public void error(String format, Object... arguments) {
 
 237         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arguments)));
 
 241     public void error(String format, Object arg1, Object arg2) {
 
 242         events.add(new LogRecord(Level.ERROR, MessageFormat.format(format, arg1, arg2)));
 
 246     public void error(String msg, Throwable t) {
 
 247         events.add(new LogRecord(Level.ERROR, msg, t));
 
 251     public String getName() {
 
 256     public void info(Marker marker, String msg) {
 
 261     public void info(Marker marker, String format, Object arg) {
 
 266     public void info(Marker marker, String format, Object... arguments) {
 
 267         info(format, arguments);
 
 271     public void info(Marker marker, String format, Object arg1, Object arg2) {
 
 272         info(format, arg1, arg2);
 
 276     public void info(Marker marker, String msg, Throwable t) {
 
 277         events.add(new LogRecord(Level.INFO, msg, t));
 
 281     public void info(String msg) {
 
 282         events.add(new LogRecord(Level.INFO, msg));
 
 286     public void info(String format, Object arg) {
 
 287         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg)));
 
 291     public void info(String format, Object... arguments) {
 
 292         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arguments)));
 
 296     public void info(String format, Object arg1, Object arg2) {
 
 297         events.add(new LogRecord(Level.INFO, MessageFormat.format(format, arg1, arg2)));
 
 301     public void info(String msg, Throwable t) {
 
 302         events.add(new LogRecord(Level.INFO, msg, t));
 
 306     public boolean isDebugEnabled() {
 
 311     public boolean isDebugEnabled(Marker marker) {
 
 316     public boolean isErrorEnabled() {
 
 321     public boolean isErrorEnabled(Marker marker) {
 
 326     public boolean isInfoEnabled() {
 
 331     public boolean isInfoEnabled(Marker marker) {
 
 336     public boolean isTraceEnabled() {
 
 341     public boolean isTraceEnabled(Marker marker) {
 
 346     public boolean isWarnEnabled() {
 
 351     public boolean isWarnEnabled(Marker marker) {
 
 356     public void trace(Marker marker, String msg) {
 
 361     public void trace(Marker marker, String format, Object arg) {
 
 366     public void trace(Marker marker, String format, Object... argArray) {
 
 367         trace(format, argArray);
 
 371     public void trace(Marker marker, String format, Object arg1, Object arg2) {
 
 372         trace(format, arg1, arg2);
 
 376     public void trace(Marker marker, String msg, Throwable t) {
 
 381     public void trace(String msg) {
 
 382         events.add(new LogRecord(Level.TRACE, msg));
 
 386     public void trace(String format, Object arg) {
 
 387         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg)));
 
 391     public void trace(String format, Object... arguments) {
 
 392         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arguments)));
 
 396     public void trace(String format, Object arg1, Object arg2) {
 
 397         events.add(new LogRecord(Level.TRACE, MessageFormat.format(format, arg1, arg2)));
 
 401     public void trace(String msg, Throwable t) {
 
 402         events.add(new LogRecord(Level.TRACE, msg, t));
 
 406     public void warn(Marker marker, String msg) {
 
 411     public void warn(Marker marker, String format, Object arg) {
 
 416     public void warn(Marker marker, String format, Object... arguments) {
 
 417         warn(format, arguments);
 
 421     public void warn(Marker marker, String format, Object arg1, Object arg2) {
 
 422         warn(format, arg1, arg2);
 
 426     public void warn(Marker marker, String msg, Throwable t) {
 
 427         events.add(new LogRecord(Level.WARN, msg, t));
 
 431     public void warn(String msg) {
 
 432         events.add(new LogRecord(Level.WARN, msg));
 
 436     public void warn(String format, Object arg) {
 
 437         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg)));
 
 441     public void warn(String format, Object... arguments) {
 
 442         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arguments)));
 
 446     public void warn(String format, Object arg1, Object arg2) {
 
 447         events.add(new LogRecord(Level.WARN, MessageFormat.format(format, arg1, arg2)));
 
 451     public void warn(String msg, Throwable t) {
 
 452         events.add(new LogRecord(Level.WARN, msg, t));