1   package ch.qos.logback.classic.spi;
2   
3   import java.io.PrintStream;
4   
5   import org.junit.jupiter.api.AfterEach;
6   import org.junit.jupiter.api.BeforeEach;
7   import org.junit.jupiter.api.Test;
8   import org.slf4j.Logger;
9   import org.slf4j.LoggerFactory;
10  import org.slf4j.LoggerFactoryFriend;
11  
12  import ch.qos.logback.classic.testUtil.StringPrintStream;
13  
14  import static org.junit.jupiter.api.Assertions.assertEquals;
15  import static org.junit.jupiter.api.Assertions.assertTrue;
16  
17  public class InvocationTest {
18  
19      private final PrintStream oldErr = System.err;
20      final String loggerName = this.getClass().getName();
21      StringPrintStream sps = new StringPrintStream(oldErr, true);
22  
23      String CONNECTED_WITH_MESSAGE = "SLF4J(I): Connected with provider of type [ch.qos.logback.classic.spi.LogbackServiceProvider]";
24  
25      @BeforeEach
26      public void setUp() throws Exception {
27          System.setErr(sps);
28      }
29  
30      @AfterEach
31      public void tearDown() throws Exception {
32          LoggerFactoryFriend.reset();
33          System.setErr(oldErr);
34      }
35  
36      // https://jira.qos.ch/browse/LOGBACK-1568 would have been prevented
37      // had this silly test existed.
38      @Test
39      public void smoke() {
40          Logger logger = LoggerFactory.getLogger(this.getClass());
41          logger.debug("Hello world.");
42  
43          assertEquals(1, sps.stringList.size());
44          assertEquals(CONNECTED_WITH_MESSAGE, sps.stringList.get(0));
45  
46      }
47  
48  }