Skip to content

Commit e81dffc

Browse files
refactor(retrofit2): add more details to the SpinnakerConversionException's message (#1226)
* refactor(test): flip the arguments of assertions for readability * feat(retrofit2): add more details to the SpinnakerConversionException's message
1 parent 4e1a797 commit e81dffc

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

kork-retrofit/src/main/java/com/netflix/spinnaker/kork/retrofit/ErrorHandlingExecutorCallAdapterFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public Response<T> execute() {
153153
}
154154
} catch (JsonProcessingException jpe) {
155155
throw new SpinnakerConversionException(
156-
"Failed to process response body", jpe, delegate.request());
156+
"Failed to process response body: " + jpe.getMessage(), jpe, delegate.request());
157157
} catch (IOException e) {
158158
throw new SpinnakerNetworkException(e, delegate.request());
159159
} catch (Exception e) {

kork-retrofit/src/test/java/com/netflix/spinnaker/kork/retrofit/exceptions/SpinnakerRetrofit2ErrorHandleTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,10 @@ void testSpinnakerConversionException() {
213213
() -> retrofit2Service.getRetrofit2().execute(), SpinnakerConversionException.class);
214214
assertThat(spinnakerConversionException.getRetryable()).isNotNull();
215215
assertThat(spinnakerConversionException.getRetryable()).isFalse();
216-
assertThat(spinnakerConversionException).hasMessage("Failed to process response body");
216+
assertThat(spinnakerConversionException)
217+
.hasMessage(
218+
"Failed to process response body: Cannot deserialize value of type `java.lang.String` from Object value (token `JsonToken.START_OBJECT`)\n"
219+
+ " at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 1]");
217220
assertThat(spinnakerConversionException.getUrl())
218221
.isEqualTo(mockWebServer.url("/retrofit2").toString());
219222
}

kork-retrofit2/src/test/java/com/netflix/spinnaker/kork/retrofit/Retrofit2ServiceFactoryTest.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ void testRetrofit2Client() {
102102
serviceClientProvider.getService(Retrofit2TestService.class, serviceEndpoint);
103103
Map<String, String> response = Retrofit2SyncCall.execute(retrofit2TestService.getSomething());
104104

105-
assertEquals(response.get("message"), "success");
105+
assertEquals("success", response.get("message"));
106106
}
107107

108108
@Test
@@ -120,9 +120,9 @@ void testRetrofit2ClientWithResponse() {
120120
serviceClientProvider.getService(Retrofit2TestService.class, serviceEndpoint);
121121
Response<Map<String, String>> response =
122122
Retrofit2SyncCall.executeCall(retrofit2TestService.getSomething());
123-
assertEquals(response.code(), 200);
124-
assertEquals(response.headers().get("Content-Type"), "application/json");
125-
assertEquals(response.body().get("message"), "success");
123+
assertEquals(200, response.code());
124+
assertEquals("application/json", response.headers().get("Content-Type"));
125+
assertEquals("success", response.body().get("message"));
126126
}
127127

128128
@Test
@@ -175,10 +175,10 @@ void testRetrofit2Client_withHttpException() {
175175
assertThrows(
176176
SpinnakerHttpException.class,
177177
() -> Retrofit2SyncCall.executeCall(retrofit2TestService.getSomething()));
178-
assertEquals(exception.getResponseCode(), 400);
178+
assertEquals(400, exception.getResponseCode());
179179
assertEquals(
180-
exception.getMessage(),
181-
"Status: 400, Method: GET, URL: http://localhost:" + port + "/test, Message: error");
180+
"Status: 400, Method: GET, URL: http://localhost:" + port + "/test, Message: error",
181+
exception.getMessage());
182182
}
183183

184184
@Test
@@ -200,7 +200,10 @@ void testRetrofit2Client_withConversionException() {
200200
assertThrows(
201201
SpinnakerConversionException.class,
202202
() -> Retrofit2SyncCall.executeCall(retrofit2TestService.getSomething()));
203-
assertEquals(exception.getMessage(), "Failed to process response body");
203+
assertEquals(
204+
"Failed to process response body: Unexpected end-of-input: was expecting closing quote for a string value\n"
205+
+ " at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 29]",
206+
exception.getMessage());
204207
}
205208

206209
@Configuration

0 commit comments

Comments
 (0)