From 44a280665900a0c59317394360aec460899cd837 Mon Sep 17 00:00:00 2001 From: mestizoLopez Date: Fri, 10 Jan 2020 16:52:21 -0600 Subject: [PATCH] Java sdk wip (#77) * Fixing issue regarding GET and DELETE method * Adding unit test for DaprHttp.java * Adding test scope * Renaming a property and fixing conflict to merge. Co-authored-by: Artur Souza --- sdk/pom.xml | 17 +++ .../java/io/dapr/client/DaprHttpTest.java | 115 ++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 sdk/src/test/java/io/dapr/client/DaprHttpTest.java diff --git a/sdk/pom.xml b/sdk/pom.xml index e036c01d0..43259eae5 100644 --- a/sdk/pom.xml +++ b/sdk/pom.xml @@ -15,6 +15,16 @@ 0.2.0 dapr-sdk SDK for Dapr + + + + false + + central + libs-release + https://repo.spring.io/libs-release + + @@ -52,7 +62,14 @@ mockito-core test + + com.github.gmazzo + okhttp-mock + 1.3.2 + test + + 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 000000000..000fc0133 --- /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 EXPECTED_RESULT = "{\"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(EXPECTED_RESULT); + + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("POST","v1.0/state",null); + assertEquals(EXPECTED_RESULT,mono.block()); + + } + + @Test + public void invokeDeleteMethod() throws IOException { + + mockInterceptor.addRule() + .delete("http://localhost:3500/v1.0/state") + .respond(EXPECTED_RESULT); + + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("DELETE","v1.0/state",null); + assertEquals(EXPECTED_RESULT,mono.block()); + + } + + @Test + public void invokeGetMethod() throws IOException { + + mockInterceptor.addRule() + .get("http://localhost:3500/v1.0/get") + .respond(EXPECTED_RESULT); + + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("GET","v1.0/get",null); + + assertEquals(EXPECTED_RESULT,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(EXPECTED_RESULT); + DaprHttp daprHttp = new DaprHttp("http://localhost",3500,okHttpClient); + + Mono mono = daprHttp.invokeAPI("GET","v1.0/get",headers); + + assertEquals(EXPECTED_RESULT,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(EXPECTED_RESULT,mono.block()); + } + +} \ No newline at end of file