@@ -184,6 +184,35 @@ public void testLoggerException() {
184
184
testLogAppender .stop ();
185
185
}
186
186
187
+ @ Test
188
+ public void testLoggerUnwrappedException () {
189
+
190
+ TestLogAppender testLogAppender = new TestLogAppender ();
191
+ ch .qos .logback .classic .Logger logger = (ch .qos .logback .classic .Logger ) LoggerFactory
192
+ .getLogger (Logger .ROOT_LOGGER_NAME );
193
+ logger .addAppender (testLogAppender );
194
+ testLogAppender .start ();
195
+
196
+ final InternalLoggerMiddleware loggerMiddleware = InternalLoggerMiddleware
197
+ .of ((request , topic ) -> new TestLogger (logger ));
198
+
199
+ ApiHttpRequest request = new ApiHttpRequest (ApiHttpMethod .GET , URI .create ("https://api.commercetools.com/" ),
200
+ new ApiHttpHeaders (), null );
201
+ CompletableFuture <ApiHttpResponse <byte []>> f = new CompletableFuture <>();
202
+ ApiHttpResponse <byte []> response = new ApiHttpResponse <>(400 , new ApiHttpHeaders (),
203
+ "" .getBytes (StandardCharsets .UTF_8 ));
204
+ f .completeExceptionally (new ApiHttpException (response .getStatusCode (), response .getBodyAsString ().orElse ("" ),
205
+ response .getHeaders (), response ));
206
+ loggerMiddleware .invoke (request , apiHttpRequest -> f );
207
+
208
+ Assertions .assertThat (testLogAppender .loggingEvents ).hasSize (1 );
209
+ Assertions .assertThat (testLogAppender .loggingEvents .get (0 ).getLevel ()).isEqualTo (Level .ERROR );
210
+ Assertions .assertThat (testLogAppender .loggingEvents .get (0 ).getFormattedMessage ())
211
+ .matches ("GET https://api.commercetools.com/ 400 \\ d+ - -" );
212
+
213
+ testLogAppender .stop ();
214
+ }
215
+
187
216
static class TestLogAppender extends AppenderBase <ILoggingEvent > {
188
217
ArrayList <ILoggingEvent > loggingEvents = new ArrayList <>();
189
218
0 commit comments