diff options
-rw-r--r-- | cps-service/src/test/groovy/org/onap/cps/notification/NotificationErrorHandlerSpec.groovy | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/cps-service/src/test/groovy/org/onap/cps/notification/NotificationErrorHandlerSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/notification/NotificationErrorHandlerSpec.groovy index 4cacc43656..d0cd47383f 100644 --- a/cps-service/src/test/groovy/org/onap/cps/notification/NotificationErrorHandlerSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/notification/NotificationErrorHandlerSpec.groovy @@ -19,23 +19,40 @@ package org.onap.cps.notification +import ch.qos.logback.classic.Logger +import ch.qos.logback.classic.spi.ILoggingEvent +import ch.qos.logback.core.read.ListAppender +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.BeforeEach +import org.slf4j.LoggerFactory + import spock.lang.Specification class NotificationErrorHandlerSpec extends Specification{ NotificationErrorHandler objectUnderTest = new NotificationErrorHandler() + def logWatcher = Spy(ListAppender<ILoggingEvent>) + + @BeforeEach + void setup() { + ((Logger) LoggerFactory.getLogger(NotificationErrorHandler.class)).addAppender(logWatcher); + logWatcher.start(); + } + + @AfterEach + void teardown() { + ((Logger) LoggerFactory.getLogger(NotificationErrorHandler.class)).detachAndStopAllAppenders(); + } def 'Logging exception via notification error handler'() { - given: 'redirect system.out to a readable stream' - def systemOutAsStream = new ByteArrayOutputStream() - System.out = new PrintStream(systemOutAsStream) when: 'some exception occurs' objectUnderTest.onException(new Exception('sample exception'), 'some context') then: 'log output results contains the correct error details' - def systemOutAsString = systemOutAsStream.toString() - systemOutAsString.contains('Failed to process') - systemOutAsString.contains('Error cause: sample exception') - systemOutAsString.contains('Error context: [some context]') + def logMessage = logWatcher.list.get(0).getFormattedMessage() + logMessage.contains( + "Failed to process \n" + + " Error cause: sample exception \n" + + " Error context: [some context]") } } |