11package eatda .config ;
22
3+ import static org .assertj .core .api .Assertions .assertThat ;
4+
5+ import ch .qos .logback .classic .Level ;
6+ import ch .qos .logback .classic .Logger ;
7+ import ch .qos .logback .classic .spi .ILoggingEvent ;
8+ import ch .qos .logback .core .read .ListAppender ;
39import org .junit .jupiter .api .Nested ;
410import org .junit .jupiter .api .Test ;
11+ import org .slf4j .LoggerFactory ;
512import org .springframework .mock .web .MockHttpServletRequest ;
613import org .springframework .mock .web .MockHttpServletResponse ;
714
@@ -13,11 +20,24 @@ class LoggingInterceptorTest {
1320 class afterCompletion {
1421
1522 @ Test
16- void preHandle_없이_afterCompletion만_호출되면_duration_unknown_로그가_남는다 () {
23+ void preHandle_없이_afterCompletion만_호출되면_duration_unknown_로그가_남는다 () throws Exception {
1724 MockHttpServletRequest request = new MockHttpServletRequest ();
1825 MockHttpServletResponse response = new MockHttpServletResponse ();
1926
27+ Logger logger = (Logger ) LoggerFactory .getLogger (LoggingInterceptor .class );
28+ ListAppender <ILoggingEvent > listAppender = new ListAppender <>();
29+ listAppender .start ();
30+ logger .addAppender (listAppender );
31+
2032 interceptor .afterCompletion (request , response , new Object (), null );
33+
34+ assertThat (listAppender .list ).anySatisfy (event -> {
35+ assertThat (event .getLevel ()).isEqualTo (Level .WARN );
36+ assertThat (event .getFormattedMessage ()).contains ("duration unknown - preHandle not called" );
37+ });
38+
39+ listAppender .stop ();
40+ logger .detachAppender (listAppender );
2141 }
2242 }
2343}
0 commit comments