Bug 4944 - Fixing a QueryParam name typo 29/32429/7
authorRitu Sood <ritu.sood@intel.com>
Mon, 11 Jan 2016 20:39:11 +0000 (12:39 -0800)
committerRitu Sood <ritu.sood@intel.com>
Wed, 24 Feb 2016 06:48:10 +0000 (22:48 -0800)
QueryParam  string is wrongly called shared when it
should be admin_state_up. Added test for checking
response of a query in a collection and added
testcase for reproducing the bug. Changeset
445690e94dd990ad6d117b4d7c86e95b8bf9392b
in stable/beryllium fixes the same issue.

Change-Id: I2e5a40ed392d57d9f1d61696910ad3613cdb206e
Signed-off-by: Ritu Sood <ritu.sood@intel.com>
integration/test/pom.xml
integration/test/src/test/java/org/opendaylight/neutron/e2etest/ITNeutronE2E.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronFirewallTests.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronFirewallNorthbound.java

index 4d4dff687a0544f15c0f2e604ed3531326ed6dc3..db11b63375b518e54eb1f312138808106d8f39cb 100644 (file)
       <artifactId>org.jacoco.agent</artifactId>
       <version>${jacoco.version}</version>
     </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+    </dependency>
   </dependencies>
 
   <build>
index 5552d76adb0e5694c5676a8e7ed2339622ccf5c6..5f8fa00d32e88648102cfdde3be8c67978694fd1 100644 (file)
@@ -20,12 +20,20 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
 import static org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
 
 import java.io.File;
+import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
+import java.io.BufferedReader;
 
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.util.Map;
+import java.util.Set;
 
 import javax.inject.Inject;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
 
 import org.junit.Assert;
 import org.junit.Test;
@@ -222,4 +230,34 @@ public class ITNeutronE2E {
             Assert.assertFalse("E2E Tests Failed", true);
         }
     }
+
+    static void test_fetch_collection_response(String url_s, String collectionName, String context) {
+        StringBuffer response = new StringBuffer();
+        String inputLine;
+        try {
+            URL url = new URL(url_s);
+            HttpURLConnection httpConn = HttpURLConnectionFactoryGet(url);
+            Assert.assertEquals(context, 200, httpConn.getResponseCode());
+            BufferedReader in = new BufferedReader(
+                    new InputStreamReader(httpConn.getInputStream()));
+            while ((inputLine = in.readLine()) != null) {
+                response.append(inputLine);
+            }
+            in.close();
+        } catch (Exception e) {
+            e.printStackTrace(); // temporary, remove me
+            Assert.assertFalse("E2E Tests Failed", true);
+        }
+        //Collection is returned in an array. Format - {"collectionName": [{...}, {....}]}
+        Gson gson = new Gson();
+        JsonObject jsonObjectOutput = gson.fromJson(response.toString(), JsonObject.class);
+        Set<Map.Entry<String, JsonElement>> entrySet = jsonObjectOutput.entrySet();
+        Assert.assertTrue("E2E Tests Failed - Json Error", (entrySet.size() > 0));
+        JsonElement jsonElementValue = entrySet.iterator().next().getValue();
+        String key = entrySet.iterator().next().getKey();
+        Assert.assertEquals(context, collectionName, key);
+        Assert.assertTrue("E2E Tests Failed - Collection not Array", (jsonElementValue.isJsonArray()));
+        JsonArray jsonArray = jsonElementValue.getAsJsonArray();
+        Assert.assertNotEquals(context, jsonArray.size(), 0);
+    }
 }
index 1791d39c22f7a5ab34bb02951f005317cbb82edc..7ad3b68d9c562f52f2574a386805324efd8db3dc 100644 (file)
@@ -74,6 +74,17 @@ public class NeutronFirewallTests {
         ITNeutronE2E.test_fetch(url, false, "Firewall Element Negative Get Failed");
     }
 
+    public void fw_collection_bug4944_test() {
+        String url = base + "/fw/firewalls";
+        String content = " { \"firewall\": { \"admin_state_up\": true,\"shared\": false," +
+             "\"id\": \"3b0ef8f4-82c7-44d4-a4fb-6177f9a21977\" } }";
+        ITNeutronE2E.test_create(url, content, "Firewall Singleton Post Failed");
+        url = base + "/fw/firewalls?shared=false";
+        ITNeutronE2E.test_fetch_collection_response(url, "firewalls", "Firewall Collection Get Response Failed");
+        url = base + "/fw/firewalls/3b0ef8f4-82c7-44d4-a4fb-6177f9a21977";
+        ITNeutronE2E.test_delete(url, "Firewall Delete Failed");
+    }
+
     public static void runTests(String base) {
         NeutronFirewallTests fw_tester = new NeutronFirewallTests(base);
         fw_tester.singleton_fw_create_test();
@@ -83,5 +94,6 @@ public class NeutronFirewallTests {
         fw_tester.fw_modify_test();
         fw_tester.fw_delete_test();
         fw_tester.fw_element_negative_get_test();
+        fw_tester.fw_collection_bug4944_test();
     }
 }
index b5d6490e7dc03939073fb777c77606ab359bc0f1..7ce34d43397d81176c4d9b2f1681f4d517c51214 100644 (file)
@@ -137,7 +137,7 @@ public class NeutronFirewallNorthbound
             @QueryParam("tenant_id") String queryFirewallTenantID,
             @QueryParam("name") String queryFirewallName,
             @QueryParam("description") String queryFirewallDescription,
-            @QueryParam("shared") Boolean queryFirewallAdminStateIsUp,
+            @QueryParam("admin_state_up") Boolean queryFirewallAdminStateIsUp,
             @QueryParam("status") String queryFirewallStatus,
             @QueryParam("shared") Boolean queryFirewallIsShared,
             @QueryParam("firewall_policy_id") String queryFirewallPolicyID,