add get request test 83/79883/1
authormicdzied <michal.1.dziedzic@nokia.com>
Thu, 7 Mar 2019 09:03:43 +0000 (10:03 +0100)
committermicdzied <michal.1.dziedzic@nokia.com>
Thu, 7 Mar 2019 09:07:00 +0000 (10:07 +0100)
Change-Id: I94a4337ca2a335587382c9965f6543af619e16ea
Issue-ID: DCAEGEN2-1315
Signed-off-by: micdzied <michal.1.dziedzic@nokia.com>
rest-services/common-dependency/pom.xml
rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/adapters/http/CloudHttpClient.java
rest-services/common-dependency/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/adapters/http/CloudHttpClientIT.java

index 1b34fb6..4bda175 100644 (file)
             <artifactId>junit-jupiter-engine</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>io.projectreactor</groupId>
+            <artifactId>reactor-test</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
index 33c39fa..f645bc9 100644 (file)
@@ -58,7 +58,7 @@ public class CloudHttpClient {
         this(HttpClient.create().secure(sslContextSpec -> sslContextSpec.sslContext(sslContext)));
     }
 
-    private CloudHttpClient(HttpClient httpClient) {
+    CloudHttpClient(HttpClient httpClient) {
         this.httpClient = httpClient;
 
     }
index 2553b9b..328df2d 100644 (file)
 
 package org.onap.dcaegen2.services.sdk.rest.services.adapters.http;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.junit.jupiter.api.Test;
+import reactor.core.publisher.Mono;
+import reactor.netty.DisposableServer;
+import reactor.netty.http.client.HttpClient;
+import reactor.netty.http.server.HttpServer;
+import reactor.netty.resources.ConnectionProvider;
+import reactor.test.StepVerifier;
 
 class CloudHttpClientIT {
 
+    private static final String SAMPLE_URL = "/sampleURL";
+    private static final int MAX_CONNECTIONS = 1;
+    private static final ConnectionProvider connectionProvider = ConnectionProvider.fixed("test", MAX_CONNECTIONS);
+
     @Test
     public void post() {
         assertTrue(true);
     }
 
     @Test
-    public void get() {
+    public void patch() {
         assertTrue(true);
     }
 
     @Test
-    public void patch() {
-        assertTrue(true);
+    void successfulGetResponse() {
+        String sampleString = "sampleString";
+        Mono<String> response = Mono.just(sampleString);
+        DisposableServer server =
+            HttpServer.create()
+                .handle((req, resp) -> resp.sendString(response))
+                .wiretap(true)
+                .bindNow();
+        HttpClient httpClient = createHttpClientForContextWithAddress(server, connectionProvider);
+        CloudHttpClient cloudHttpClient = new CloudHttpClient(httpClient);
+
+        Mono<String> content = cloudHttpClient.get(SAMPLE_URL, String.class);
+
+        StepVerifier.create(content)
+            .expectNext(sampleString)
+            .expectComplete()
+            .verify();
+        server.disposeNow();
+    }
+
+    @Test
+    void errorGetRequest() {
+        DisposableServer server =
+            HttpServer.create()
+                .handle((req, resp) -> Mono.error(new Exception("returnError")))
+                .wiretap(true)
+                .bindNow();
+        HttpClient httpClient = createHttpClientForContextWithAddress(server, connectionProvider);
+        CloudHttpClient cloudHttpClient = new CloudHttpClient(httpClient);
+
+        Mono<String> content = cloudHttpClient.get(SAMPLE_URL, String.class);
+
+        StepVerifier.create(content)
+            .expectError()
+            .verify();
+        server.disposeNow();
+    }
+
+    private HttpClient createHttpClientForContextWithAddress(DisposableServer context) {
+        return createHttpClientForContextWithAddress(context, null);
+    }
+
+    private HttpClient createHttpClientForContextWithAddress(DisposableServer disposableServer,
+        ConnectionProvider connectionProvider) {
+        HttpClient client = connectionProvider == null? HttpClient.create() : HttpClient.create(connectionProvider);
+        return client.addressSupplier(disposableServer::address).wiretap(true);
     }
 }
\ No newline at end of file