From f71915e96bd120ee6a0ab5834af22db806c07137 Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 9 Jan 2020 14:43:57 -0600 Subject: [PATCH 1/4] Fixing issue regarding GET and DELETE method --- sdk/src/main/java/io/dapr/client/DaprHttp.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sdk/src/main/java/io/dapr/client/DaprHttp.java b/sdk/src/main/java/io/dapr/client/DaprHttp.java index 613e007ccf..f0f03220af 100644 --- a/sdk/src/main/java/io/dapr/client/DaprHttp.java +++ b/sdk/src/main/java/io/dapr/client/DaprHttp.java @@ -125,8 +125,14 @@ public final Mono invokeAPI(String method, String urlString, byte[] cont Request.Builder requestBuilder = new Request.Builder() .url(new URL(this.baseUrl + urlString)) - .method(method, body) .addHeader(Constants.HEADER_DAPR_REQUEST_ID, requestId); + if (Constants.defaultHttpMethodSupported.GET.name().equals(method)) { + requestBuilder.get(); + } else if (Constants.defaultHttpMethodSupported.DELETE.name().equals(method)) { + requestBuilder.delete(); + } else { + requestBuilder.method(method, body); + } if (headers != null) { Optional.ofNullable(headers.entrySet()).orElse(Collections.emptySet()).stream() .forEach(header -> { From c18fc7fc904d25276dc9e9d3097dae1cfcef8f84 Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 9 Jan 2020 18:26:10 -0600 Subject: [PATCH 2/4] Adding unit test for DaprHttp.java --- sdk/pom.xml | 21 ++++ .../java/io/dapr/client/DaprHttpTest.java | 115 ++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 sdk/src/test/java/io/dapr/client/DaprHttpTest.java diff --git a/sdk/pom.xml b/sdk/pom.xml index e036c01d0d..78b234a41d 100644 --- a/sdk/pom.xml +++ b/sdk/pom.xml @@ -15,6 +15,17 @@ 0.2.0 dapr-sdk SDK for Dapr + + + + false + + central + libs-release + https://repo.spring.io/libs-release + + + @@ -52,6 +63,16 @@ mockito-core test + + + + com.github.gmazzo + okhttp-mock + 1.3.2 + + + + true diff --git a/sdk/src/test/java/io/dapr/client/DaprHttpTest.java b/sdk/src/test/java/io/dapr/client/DaprHttpTest.java new file mode 100644 index 0000000000..1bd2d527f1 --- /dev/null +++ b/sdk/src/test/java/io/dapr/client/DaprHttpTest.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + */ +package io.dapr.client; + +import okhttp3.*; +import okhttp3.mock.Behavior; +import okhttp3.mock.MockInterceptor; +import org.junit.Before; +import org.junit.Test; +import reactor.core.publisher.Mono; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.assertEquals; + + +public class DaprHttpTest { + + private OkHttpClient okHttpClient; + + private MockInterceptor mockInterceptor; + + private final String expectedResult = "{\"data\":\"ewoJCSJwcm9wZXJ0eUEiOiAidmFsdWVBIiwKCQkicHJvcGVydHlCIjogInZhbHVlQiIKCX0=\"}"; + + @Before + public void setUp() throws Exception { + mockInterceptor = new MockInterceptor(Behavior.UNORDERED); + okHttpClient = new OkHttpClient.Builder().addInterceptor(mockInterceptor).build(); + } + + @Test + public void invokePostMethod() throws IOException { + + mockInterceptor.addRule() + .post("http://localhost:3500/v1.0/state") + .respond(expectedResult); + + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("POST","v1.0/state",null); + assertEquals(expectedResult,mono.block()); + + } + + @Test + public void invokeDeleteMethod() throws IOException { + + mockInterceptor.addRule() + .delete("http://localhost:3500/v1.0/state") + .respond(expectedResult); + + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("DELETE","v1.0/state",null); + assertEquals(expectedResult,mono.block()); + + } + + @Test + public void invokeGetMethod() throws IOException { + + mockInterceptor.addRule() + .get("http://localhost:3500/v1.0/get") + .respond(expectedResult); + + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("GET","v1.0/get",null); + + assertEquals(expectedResult,mono.block()); + + } + + @Test + public void invokeMethodWithHeaders() { + + Map headers = new HashMap<>(); + headers.put("header","value"); + headers.put("header1","value1"); + + mockInterceptor.addRule() + .get("http://localhost:3500/v1.0/get") + .respond(expectedResult); + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("GET","v1.0/get",headers); + + assertEquals(expectedResult,mono.block()); + + } + + @Test(expected = RuntimeException.class) + public void invokeMethodRuntimeException(){ + + Map headers = new HashMap<>(); + headers.put("header","value"); + headers.put("header1","value1"); + + mockInterceptor.addRule() + .get("http://localhost:3500/v1.0/get") + .respond(500, ResponseBody.create(MediaType.parse("application/json"), + "{\"errorCode\":\"500\",\"message\":\"Error\"}")); + + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("GET","v1.0/get",headers); + + assertEquals(expectedResult,mono.block()); + } + +} \ No newline at end of file From 67e5a03d6af37315c30c7d2b59515982924eb550 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 10 Jan 2020 10:35:46 -0600 Subject: [PATCH 3/4] Adding test scope --- sdk/pom.xml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sdk/pom.xml b/sdk/pom.xml index 78b234a41d..43259eae50 100644 --- a/sdk/pom.xml +++ b/sdk/pom.xml @@ -24,7 +24,6 @@ libs-release https://repo.spring.io/libs-release - @@ -63,17 +62,14 @@ mockito-core test - - com.github.gmazzo okhttp-mock 1.3.2 + test - - - + true From 6f9b7fd3fa0f663f840151d32f099c0c43651b39 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 10 Jan 2020 13:22:19 -0600 Subject: [PATCH 4/4] Renaming a property and fixing conflict to merge. --- .../java/io/dapr/client/DaprHttpTest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sdk/src/test/java/io/dapr/client/DaprHttpTest.java b/sdk/src/test/java/io/dapr/client/DaprHttpTest.java index 1bd2d527f1..000fc01336 100644 --- a/sdk/src/test/java/io/dapr/client/DaprHttpTest.java +++ b/sdk/src/test/java/io/dapr/client/DaprHttpTest.java @@ -24,7 +24,7 @@ public class DaprHttpTest { private MockInterceptor mockInterceptor; - private final String expectedResult = "{\"data\":\"ewoJCSJwcm9wZXJ0eUEiOiAidmFsdWVBIiwKCQkicHJvcGVydHlCIjogInZhbHVlQiIKCX0=\"}"; + private final String EXPECTED_RESULT = "{\"data\":\"ewoJCSJwcm9wZXJ0eUEiOiAidmFsdWVBIiwKCQkicHJvcGVydHlCIjogInZhbHVlQiIKCX0=\"}"; @Before public void setUp() throws Exception { @@ -37,12 +37,12 @@ public void invokePostMethod() throws IOException { mockInterceptor.addRule() .post("http://localhost:3500/v1.0/state") - .respond(expectedResult); + .respond(EXPECTED_RESULT); DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); Mono mono = daprHttp.invokeAPI("POST","v1.0/state",null); - assertEquals(expectedResult,mono.block()); + assertEquals(EXPECTED_RESULT,mono.block()); } @@ -51,12 +51,12 @@ public void invokeDeleteMethod() throws IOException { mockInterceptor.addRule() .delete("http://localhost:3500/v1.0/state") - .respond(expectedResult); + .respond(EXPECTED_RESULT); DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); Mono mono = daprHttp.invokeAPI("DELETE","v1.0/state",null); - assertEquals(expectedResult,mono.block()); + assertEquals(EXPECTED_RESULT,mono.block()); } @@ -65,13 +65,13 @@ public void invokeGetMethod() throws IOException { mockInterceptor.addRule() .get("http://localhost:3500/v1.0/get") - .respond(expectedResult); + .respond(EXPECTED_RESULT); DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); Mono mono = daprHttp.invokeAPI("GET","v1.0/get",null); - assertEquals(expectedResult,mono.block()); + assertEquals(EXPECTED_RESULT,mono.block()); } @@ -84,12 +84,12 @@ public void invokeMethodWithHeaders() { mockInterceptor.addRule() .get("http://localhost:3500/v1.0/get") - .respond(expectedResult); + .respond(EXPECTED_RESULT); DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); Mono mono = daprHttp.invokeAPI("GET","v1.0/get",headers); - assertEquals(expectedResult,mono.block()); + assertEquals(EXPECTED_RESULT,mono.block()); } @@ -109,7 +109,7 @@ public void invokeMethodRuntimeException(){ Mono mono = daprHttp.invokeAPI("GET","v1.0/get",headers); - assertEquals(expectedResult,mono.block()); + assertEquals(EXPECTED_RESULT,mono.block()); } } \ No newline at end of file