1
2
3
4
5
6
7
8
9
10
11 package psiprobe.tools.logging.log4j2;
12
13 import static org.junit.jupiter.api.Assertions.assertEquals;
14 import static org.junit.jupiter.api.Assertions.assertNotNull;
15 import static org.junit.jupiter.api.Assertions.assertTrue;
16 import static org.mockito.ArgumentMatchers.any;
17 import static org.mockito.ArgumentMatchers.eq;
18 import static org.mockito.Mockito.doReturn;
19 import static org.mockito.Mockito.mock;
20 import static org.mockito.Mockito.spy;
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 class Log4J2LoggerConfigAccessorTest {
32
33
34 private Log4J2LoggerConfigAccessor accessor;
35
36
37 private Object mockTarget;
38
39
40 private Log4J2LoggerContextAccessor mockLoggerContext;
41
42
43
44
45 @BeforeEach
46 void setUp() {
47 accessor = new Log4J2LoggerConfigAccessor();
48 mockTarget = mock(Object.class);
49 mockLoggerContext = mock(Log4J2LoggerContextAccessor.class);
50 accessor.setLoggerContext(mockLoggerContext);
51 }
52
53
54
55
56 @Test
57 void testSetAndGetContext() {
58 accessor.setContext(true);
59 assertTrue(accessor.isContext());
60 }
61
62
63
64
65 @Test
66 void testSetTargetAndGetAppenders() {
67 Map<String, Object> appenderMap = new HashMap<>();
68 Object appender = mock(Object.class);
69 appenderMap.put("A1", appender);
70
71 Log4J2AppenderAccessor wrapped = mock(Log4J2AppenderAccessor.class);
72
73 Log4J2LoggerConfigAccessor spyAccessor = spy(accessor);
74 doReturn(appenderMap).when(spyAccessor).invokeMethod(any(), eq("getAppenders"), any(), any());
75 doReturn(wrapped).when(spyAccessor).wrapAppender(any());
76
77 spyAccessor.setTarget(mockTarget);
78 assertEquals(1, spyAccessor.getAppenders().size());
79 }
80
81
82
83
84 @Test
85 void testGetAppenderByName() {
86 Map<String, Object> appenderMap = new HashMap<>();
87 Object appender = mock(Object.class);
88 appenderMap.put("A1", appender);
89
90 Log4J2LoggerConfigAccessor spyAccessor = spy(accessor);
91 doReturn(appenderMap).when(spyAccessor).invokeMethod(any(), eq("getAppenders"), any(), any());
92 doReturn(new Log4J2AppenderAccessor()).when(spyAccessor).wrapAppender(any());
93
94 spyAccessor.setTarget(mockTarget);
95 assertNotNull(spyAccessor.getAppender("A1"));
96 }
97
98
99
100
101 @Test
102 void testIsRoot() {
103 Log4J2LoggerConfigAccessor spyAccessor = spy(accessor);
104 doReturn("").when(spyAccessor).getName();
105 assertTrue(spyAccessor.isRoot());
106 }
107
108 }