Test coverage increasing for iovisor.restclient 21/39121/1
authorKonstantin Blagov <kblagov@cisco.com>
Thu, 19 May 2016 16:32:20 +0000 (18:32 +0200)
committerKonstantin Blagov <kblagov@cisco.com>
Thu, 19 May 2016 16:32:20 +0000 (18:32 +0200)
Change-Id: I931a58b7386680bf79bdec6860f1550bb5f03bb9
Signed-off-by: Konstantin Blagov <kblagov@cisco.com>
renderers/iovisor/pom.xml [changed mode: 0644->0755]
renderers/iovisor/src/test/java/org/opendaylight/groupbasedpolicy/renderer/restclient/RestClientTest.java [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 67a70e9..ed72d57
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2015 Cisco Systems. All rights reserved. 
-  This program and the accompanying materials are made available under the 
-  terms of the Eclipse Public License v1.0 which accompanies this distribution, 
+<!-- Copyright (c) 2015 Cisco Systems. All rights reserved.
+  This program and the accompanying materials are made available under the
+  terms of the Eclipse Public License v1.0 which accompanies this distribution,
   and is available at http://www.eclipse.org/legal/epl-v10.html -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
       <version>${powermock.version}</version>
       <scope>test</scope>
     </dependency>
+      <dependency>
+          <groupId>com.sun.jersey.jersey-test-framework</groupId>
+          <artifactId>jersey-test-framework-grizzly2</artifactId>
+          <scope>test</scope>
+      </dependency>
   </dependencies>
 
   <build>
old mode 100644 (file)
new mode 100755 (executable)
index eab0c1a..a33b83c
 
 package org.opendaylight.groupbasedpolicy.renderer.restclient;
 
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
 import java.util.List;
 
+import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory;
+import com.sun.jersey.api.core.ClassNamesResourceConfig;
+import com.sun.jersey.api.core.ResourceConfig;
+import com.sun.jersey.test.framework.AppDescriptor;
+import com.sun.jersey.test.framework.JerseyTest;
+import com.sun.jersey.test.framework.WebAppDescriptor;
+import org.glassfish.grizzly.http.server.HttpServer;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.groupbasedpolicy.renderer.iovisor.restclient.RestClient;
 
-import com.google.common.collect.ImmutableList;
-
-public class RestClientTest {
+public class RestClientTest extends JerseyTest {
 
     private RestClient client;
     private String uri;
-    private String resolvedPolicy =
+    private static String resolvedPolicy =
             " { \"resolved-policy-uri\" : \"/restconf/operational/resolved-policy:resolved-policies/resolved-policy/tenant-red/client/tenant-red/webserver/\" } ";
 
+    private static final String BASE_URI = "http://localhost";
+    private static final int BASE_PORT = 1234;
+    private static HttpServer server;
+
+    private static HttpServer startServer() throws IOException {
+        final ResourceConfig resourceConfig = new ClassNamesResourceConfig(dumbServer.class);
+        HttpServer httpServer = null;
+        httpServer = GrizzlyServerFactory.createHttpServer(URI.create(BASE_URI + ":" + BASE_PORT), resourceConfig);
+        return httpServer;
+    }
+
+    @BeforeClass
+    public static void setUpClass() throws IOException {
+        server = startServer();
+    }
+
+    @AfterClass
+    public static void tearDownClass() {
+        if (server != null && server.isStarted())
+            server.stop();
+    }
+
+    @Before
+    public void init() {
+        client = new RestClient("http://localhost:1234");
+    }
+
+    @Test
+    public void testResolvedPoliciesJSON_coverage() {
+        client.new ResolvedPoliciesJSON("string");
+
+        List<String> uris = new ArrayList<>();
+        uris.add("string1");
+        uris.add("string2");
+        client.new ResolvedPoliciesJSON(uris);
+    }
+
+    @Test
+    public void testGet_coverage() {
+        client.get("/");
+        client.get("/warning");
+        client.get("/error");
+    }
+
+    @Test
+    public void testPost_coverage() {
+        client.post("/", "json");
+    }
+
+    @Override
+    protected AppDescriptor configure() {
+        return new WebAppDescriptor.Builder().build();
+    }
+
+    @Path("/")
+    public static class dumbServer {
+
+        @GET
+        @Produces(MediaType.APPLICATION_JSON)
+        public Response get200() {
+            return Response.status(Response.Status.OK).entity(resolvedPolicy).build();
+        }
+
+        @POST
+        @Consumes(MediaType.APPLICATION_JSON)
+        public Response post200(String json) {
+            return Response.status(Response.Status.OK).build();
+        }
+
+        @Path("/warning")
+        @GET
+        public Response get202() {
+            return Response.status(Response.Status.ACCEPTED).build();
+        }
+
+        @Path("/error")
+        @GET
+        public Response get404() {
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
+    }
 }