From e338a80e47aede5374d0127e844f915b12242776 Mon Sep 17 00:00:00 2001 From: emaclee Date: Wed, 13 Jul 2022 17:11:51 +0100 Subject: Refactor unit test for Notification Error Handler Issue-ID: CPS-1146 Signed-off-by: emaclee Change-Id: Idd1c1236b9574c1d070c3dc4111ebcce8d800b23 --- .../NotificationErrorHandlerSpec.groovy | 31 +++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'cps-service/src/test') 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]") } } -- cgit 1.2.3-korg