1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.classic.spi;
15
16
17 import ch.qos.logback.classic.Level;
18 import ch.qos.logback.classic.Logger;
19 import org.junit.jupiter.api.BeforeEach;
20 import org.junit.jupiter.api.Test;
21
22 import ch.qos.logback.classic.LoggerContext;
23 import ch.qos.logback.classic.spi.BasicContextListener.UpdateType;
24
25 import static org.junit.jupiter.api.Assertions.assertEquals;
26
27 public class ContextListenerTest {
28
29 LoggerContext loggerContext;
30 BasicContextListener listener;
31
32 @BeforeEach
33 public void setUp() throws Exception {
34 loggerContext = new LoggerContext();
35 loggerContext.start();
36 listener = new BasicContextListener();
37 loggerContext.addListener(listener);
38 }
39
40 @Test
41 public void testNotifyOnReset() {
42 loggerContext.reset();
43 assertEquals(UpdateType.RESET, listener.updateType);
44 assertEquals(listener.context, loggerContext);
45 }
46
47 @Test
48 public void testResistantListener_NotifyOnStop() {
49 listener.setResetResistant(true);
50 loggerContext.stop();
51 assertEquals(UpdateType.STOP, listener.updateType);
52 assertEquals(listener.context, loggerContext);
53 }
54
55 @Test
56 public void testNotResistantListener_NotifyOnStop() {
57 loggerContext.stop();
58 assertEquals(UpdateType.RESET, listener.updateType);
59 assertEquals(listener.context, loggerContext);
60 }
61
62 @Test
63 public void testNotifyOnStart() {
64 loggerContext.start();
65 assertEquals(UpdateType.START, listener.updateType);
66 assertEquals(listener.context, loggerContext);
67 }
68
69 void checkLevelChange(String loggerName, Level level) {
70 Logger logger = loggerContext.getLogger(loggerName);
71 logger.setLevel(level);
72
73 assertEquals(UpdateType.LEVEL_CHANGE, listener.updateType);
74 assertEquals(listener.logger, logger);
75 assertEquals(listener.level, level);
76
77 }
78
79 @Test
80 public void testLevelChange() {
81 checkLevelChange("a", Level.INFO);
82 checkLevelChange("a.b", Level.ERROR);
83 checkLevelChange("a.b.c", Level.DEBUG);
84 }
85 }