1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package ch.qos.logback.classic.joran.sanity;
16
17 import ch.qos.logback.classic.ClassicTestConstants;
18 import ch.qos.logback.classic.Logger;
19 import ch.qos.logback.classic.LoggerContext;
20 import ch.qos.logback.classic.boolex.StubEventEvaluator;
21 import ch.qos.logback.classic.joran.JoranConfigurator;
22 import ch.qos.logback.classic.spi.ILoggingEvent;
23 import ch.qos.logback.classic.util.LogbackMDCAdapter;
24 import ch.qos.logback.core.joran.spi.JoranException;
25 import ch.qos.logback.core.read.ListAppender;
26 import ch.qos.logback.core.status.testUtil.StatusChecker;
27 import ch.qos.logback.core.util.StatusPrinter2;
28 import org.junit.jupiter.api.BeforeEach;
29 import org.junit.jupiter.api.Test;
30
31 import org.slf4j.ILoggerFactory;
32 import org.slf4j.spi.MDCAdapter;
33
34 import java.util.List;
35
36 import static org.junit.jupiter.api.Assertions.assertEquals;
37
38 public class EvaluatorStubTest {
39 LoggerContext loggerContext = new LoggerContext();
40 JoranConfigurator jc = new JoranConfigurator();
41 StatusPrinter2 statusPrinter2 = new StatusPrinter2();
42 StatusChecker statusChecker = new StatusChecker(loggerContext);
43 MDCAdapter mdcAdapter = new LogbackMDCAdapter();
44
45 @BeforeEach
46 void setUp() {
47 loggerContext.setMDCAdapter(mdcAdapter);
48 }
49
50 @Test
51 public void standaloneEventEvaluatorTest() throws JoranException {
52 jc.setContext(loggerContext);
53 jc.doConfigure(ClassicTestConstants.JORAN_INPUT_PREFIX + "simpleEvaluator.xml");
54 statusChecker.assertContainsMatch(StubEventEvaluator.MSG_0);
55 statusChecker.assertContainsMatch(StubEventEvaluator.MSG_1);
56 statusChecker.assertContainsMatch(StubEventEvaluator.MSG_2);
57
58 }
59
60 @Test
61 public void eventEvaluatorEmbeddedInFilterTest() throws JoranException {
62 jc.setContext(loggerContext);
63 jc.doConfigure(ClassicTestConstants.JORAN_INPUT_PREFIX + "basicEventEvaluator.xml");
64 statusChecker.assertContainsMatch(StubEventEvaluator.MSG_0);
65 statusChecker.assertContainsMatch(StubEventEvaluator.MSG_1);
66 statusChecker.assertContainsMatch(StubEventEvaluator.MSG_2);
67
68 Logger root = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
69
70 ListAppender listAppender = (ListAppender) root.getAppender("LIST");
71 List<ILoggingEvent> eventList = listAppender.list;
72
73 String message = "hello";
74 Logger logger = loggerContext.getLogger(this.getClass());
75 logger.warn(message);
76 assertEquals(1, eventList.size());
77 assertEquals(message, eventList.get(0).getMessage());
78 statusPrinter2.print(loggerContext);
79 }
80
81 }