From: emaclee Date: Wed, 13 Jul 2022 16:11:51 +0000 (+0100) Subject: Refactor unit test for Notification Error Handler X-Git-Tag: 3.1.0~67^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=cps.git;a=commitdiff_plain;h=e338a80e47aede5374d0127e844f915b12242776 Refactor unit test for Notification Error Handler Issue-ID: CPS-1146 Signed-off-by: emaclee Change-Id: Idd1c1236b9574c1d070c3dc4111ebcce8d800b23 --- 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 4cacc4365..d0cd47383 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) + + @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]") } }