Bulk delete schemasets in CM handle deregistration
[cps.git] / cps-service / src / test / groovy / org / onap / cps / notification / NotificationErrorHandlerSpec.groovy
index 4cacc43..d0cd473 100644 (file)
 
 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]")
     }
 }