From 70887fa5943ad51a0c66a00e5856e29c1dc5d0d6 Mon Sep 17 00:00:00 2001 From: Phil Adams Date: Tue, 23 May 2023 16:04:10 -0500 Subject: [PATCH] fix(RequestBuilder): retain trailing slash on operation path Signed-off-by: Phil Adams --- .../java/com/ibm/cloud/sdk/core/http/RequestBuilder.java | 7 +++++++ .../cloud/sdk/core/test/service/RequestBuilderTest.java | 7 +++++++ .../com/ibm/cloud/sdk/core/test/service/RequestTest.java | 5 ++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ibm/cloud/sdk/core/http/RequestBuilder.java b/src/main/java/com/ibm/cloud/sdk/core/http/RequestBuilder.java index 2541a32c7..5ac1d85c8 100644 --- a/src/main/java/com/ibm/cloud/sdk/core/http/RequestBuilder.java +++ b/src/main/java/com/ibm/cloud/sdk/core/http/RequestBuilder.java @@ -197,6 +197,13 @@ public static HttpUrl resolveRequestUrl(String serviceUrl, String path, Map pathParameters = new HashMap() {{ diff --git a/src/test/java/com/ibm/cloud/sdk/core/test/service/RequestTest.java b/src/test/java/com/ibm/cloud/sdk/core/test/service/RequestTest.java index 2dd0ea5c2..116f6e94e 100644 --- a/src/test/java/com/ibm/cloud/sdk/core/test/service/RequestTest.java +++ b/src/test/java/com/ibm/cloud/sdk/core/test/service/RequestTest.java @@ -41,6 +41,7 @@ import okhttp3.mockwebserver.RecordedRequest; public class RequestTest extends BaseServiceUnitTest { + private static String OperationPath = "/v1/test/"; private class TestModel extends GenericModel { String city; @@ -67,7 +68,7 @@ ServiceCall postTestModel() { final JsonObject contentJson = new JsonObject(); contentJson.addProperty("city", model.getCity()); - RequestBuilder builder = RequestBuilder.post(HttpUrl.parse(getServiceUrl() + "/v1/test")); + RequestBuilder builder = RequestBuilder.post(RequestBuilder.resolveRequestUrl(getServiceUrl(), OperationPath)); builder.bodyJson(contentJson).build(); return createServiceCall(builder.build(), ResponseConverterUtils.getObject(TestModel.class)); } @@ -118,6 +119,7 @@ public void testRequestIncludeAuthGzipEnabled() throws Throwable { // Validate the next request was compressed, which should be the call to the service String expectedOperationBody = "{\"city\":\"Columbus\"}"; request = server.takeRequest(); + assertEquals(OperationPath, request.getPath()); assertEquals("gzip", request.getHeader(CONTENT_ENCODING)); assertFalse(expectedOperationBody == request.getBody().readUtf8()); assertEquals(request.getMethod(), "POST"); @@ -156,6 +158,7 @@ public void testRequestIncludeAuthGzipDisabled() throws Throwable { // Validate the next request was compressed, which should be the call to the service String expectedOperationBody = "{\"city\":\"Columbus\"}"; request = server.takeRequest(); + assertEquals(OperationPath, request.getPath()); assertEquals("gzip", request.getHeader(CONTENT_ENCODING)); assertFalse(expectedOperationBody == request.getBody().readUtf8());