22
22
import org .junit .jupiter .api .Test ;
23
23
import org .junit .jupiter .api .Timeout ;
24
24
import org .mockito .Mockito ;
25
+ import org .slf4j .LoggerFactory ;
25
26
import org .slf4j .MDC ;
26
27
27
28
import java .io .BufferedReader ;
30
31
import java .io .PipedInputStream ;
31
32
import java .io .PipedOutputStream ;
32
33
import java .nio .charset .StandardCharsets ;
34
+ import java .util .HashMap ;
33
35
import java .util .function .Supplier ;
34
36
import java .util .regex .Pattern ;
35
37
@@ -60,8 +62,8 @@ void shouldWrapJsonConsoleAppenderCorrectly() throws Throwable {
60
62
void shouldAllWorkCorrectlyEvenWithoutMDC () throws Throwable {
61
63
givenMockAgentData ();
62
64
givenARedirectedAppender ();
63
- givenMDCIsANoOp ();
64
65
givenALoggingEventWithMDCDisabled ();
66
+ givenMDCIsANoOp ();
65
67
whenTheEventIsAppended ();
66
68
thenMockAgentDataIsInTheMessage ();
67
69
thenJsonLayoutWasUsed ();
@@ -129,13 +131,16 @@ private void givenMockAgentData() {
129
131
}
130
132
131
133
private void givenMDCIsANoOp () {
132
- NewRelicAsyncAppender .isNoOpMDC = true ;
134
+ NewRelicAsyncAppender .IsNoOpMDCHolder .isNoOpMDC = true ;
135
+ // Wipe the MDC to mimic a NOPMDCAdapter.
136
+ event .setMDCPropertyMap (new HashMap <>());
133
137
}
134
138
135
139
private void givenALoggingEvent () {
136
140
event = new LoggingEvent ();
137
141
event .setMessage ("test_error_message" );
138
142
event .setLevel (Level .ERROR );
143
+ event .setLoggerContext ((LoggerContext ) LoggerFactory .getILoggerFactory ());
139
144
}
140
145
141
146
private void givenALoggingEventWithExceptionData () {
@@ -283,7 +288,7 @@ private String getOutput() throws IOException {
283
288
void setUp () throws Exception {
284
289
// Clear MDC data before each test
285
290
MDC .clear ();
286
- isNoOpMDC = NewRelicAsyncAppender .isNoOpMDC ;
291
+ isNoOpMDC = NewRelicAsyncAppender .IsNoOpMDCHolder . isNoOpMDC ;
287
292
outputStream = new PipedOutputStream ();
288
293
PipedInputStream inputStream = new PipedInputStream (outputStream );
289
294
bufferedReader = new BufferedReader (new InputStreamReader (inputStream , StandardCharsets .UTF_8 ));
@@ -293,7 +298,7 @@ void setUp() throws Exception {
293
298
void tearDown () throws Exception {
294
299
// Clear MDC data before each test
295
300
MDC .clear ();
296
- NewRelicAsyncAppender .isNoOpMDC = isNoOpMDC ;
301
+ NewRelicAsyncAppender .IsNoOpMDCHolder . isNoOpMDC = isNoOpMDC ;
297
302
appender .stop ();
298
303
appender .detachAndStopAllAppenders ();
299
304
outputStream .close ();
0 commit comments