You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2015/07/06 16:22:41 UTC

[1/2] git commit: updated refs/heads/master to a71c985

Repository: cloudstack
Updated Branches:
  refs/heads/master 31c6b14dd -> a71c98522


findbugs: added test for getServiceProvider of CreateVpcOffering api

Signed-off-by: Daan Hoogland <da...@gmail.com>

This closes #538


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a71c9852
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a71c9852
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a71c9852

Branch: refs/heads/master
Commit: a71c9852238b01c0728fd2e1cc854dc8d48c0907
Parents: e34389a
Author: Daan Hoogland <da...@gmail.com>
Authored: Mon Jul 6 12:07:42 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jul 6 16:22:19 2015 +0200

----------------------------------------------------------------------
 .../apache/cloudstack/api/ApiCmdTestUtil.java   | 17 +++++++
 .../CreateSecondaryStagingStoreCmdTest.java     | 25 +++-------
 .../admin/vpc/CreateVPCOfferingCmdTest.java     | 48 ++++++++++++++++++++
 3 files changed, 71 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a71c9852/api/test/org/apache/cloudstack/api/ApiCmdTestUtil.java
----------------------------------------------------------------------
diff --git a/api/test/org/apache/cloudstack/api/ApiCmdTestUtil.java b/api/test/org/apache/cloudstack/api/ApiCmdTestUtil.java
new file mode 100644
index 0000000..ca4510d
--- /dev/null
+++ b/api/test/org/apache/cloudstack/api/ApiCmdTestUtil.java
@@ -0,0 +1,17 @@
+package org.apache.cloudstack.api;
+
+import java.lang.reflect.Field;
+
+public class ApiCmdTestUtil {
+    public static void set(BaseCmd cmd, String fieldName, Object value)
+            throws IllegalArgumentException, IllegalAccessException {
+        for (Field field : cmd.getClass().getDeclaredFields()) {
+            Parameter parameter = field.getAnnotation(Parameter.class);
+            if (parameter != null && fieldName.equals(parameter.name())) {
+                field.setAccessible(true);
+                field.set(cmd, value);
+            }
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a71c9852/api/test/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmdTest.java b/api/test/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmdTest.java
index 901e976..e935842 100644
--- a/api/test/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmdTest.java
+++ b/api/test/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmdTest.java
@@ -16,28 +16,15 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.storage;
 
-import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.Map;
 
-import junit.framework.Assert;
-
-import org.apache.cloudstack.api.BaseCmd;
-import org.apache.cloudstack.api.Parameter;
+import org.junit.Assert;
 import org.junit.Test;
 
-public class CreateSecondaryStagingStoreCmdTest {
+import org.apache.cloudstack.api.ApiCmdTestUtil;
 
-    static void set(BaseCmd cmd, String fieldName, Object value)
-            throws IllegalArgumentException, IllegalAccessException {
-        for (Field field : cmd.getClass().getDeclaredFields()) {
-            Parameter parameter = field.getAnnotation(Parameter.class);
-            if (parameter != null && fieldName.equals(parameter.name())) {
-                field.setAccessible(true);
-                field.set(cmd, value);
-            }
-        }
-    }
+public class CreateSecondaryStagingStoreCmdTest {
 
     @Test
     public void getDetails() throws IllegalArgumentException,
@@ -48,7 +35,7 @@ public class CreateSecondaryStagingStoreCmdTest {
         kv.put("key", "TEST-KEY");
         kv.put("value", "TEST-VALUE");
         details.put("does not matter", kv);
-        set(cmd, "details", details);
+        ApiCmdTestUtil.set(cmd, "details", details);
         Map<String, String> detailsMap = cmd.getDetails();
         Assert.assertNotNull(detailsMap);
         Assert.assertEquals(1, detailsMap.size());
@@ -60,7 +47,7 @@ public class CreateSecondaryStagingStoreCmdTest {
     public void getDetailsEmpty() throws IllegalArgumentException,
             IllegalAccessException {
         CreateSecondaryStagingStoreCmd cmd = new CreateSecondaryStagingStoreCmd();
-        set(cmd, "details", new HashMap<String, Map<String, String>>());
+        ApiCmdTestUtil.set(cmd, "details", new HashMap<String, Map<String, String>>());
         Assert.assertNull(cmd.getDetails());
     }
 
@@ -68,7 +55,7 @@ public class CreateSecondaryStagingStoreCmdTest {
     public void getDetailsNull() throws IllegalArgumentException,
             IllegalAccessException {
         CreateSecondaryStagingStoreCmd cmd = new CreateSecondaryStagingStoreCmd();
-        set(cmd, "details", null);
+        ApiCmdTestUtil.set(cmd, "details", null);
         Assert.assertNull(cmd.getDetails());
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a71c9852/api/test/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmdTest.java b/api/test/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmdTest.java
new file mode 100644
index 0000000..99433ed
--- /dev/null
+++ b/api/test/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmdTest.java
@@ -0,0 +1,48 @@
+package org.apache.cloudstack.api.command.admin.vpc;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.apache.cloudstack.api.ApiCmdTestUtil;
+import org.apache.cloudstack.api.ApiConstants;
+
+public class CreateVPCOfferingCmdTest {
+
+    @Test
+    public void testServiceProviders() throws IllegalArgumentException,
+            IllegalAccessException {
+        CreateVPCOfferingCmd cmd = new CreateVPCOfferingCmd();
+        HashMap<String, Map<String, String>> providers = new HashMap<String, Map<String, String>>();
+        HashMap<String, String> kv = new HashMap<String, String>();
+        kv.put("service", "TEST-SERVICE");
+        kv.put("provider", "TEST-PROVIDER");
+        providers.put("does not matter", kv);
+        ApiCmdTestUtil.set(cmd, ApiConstants.SERVICE_PROVIDER_LIST, providers);
+        Map<String, List<String>> providerMap = cmd.getServiceProviders();
+        Assert.assertNotNull(providerMap);
+        Assert.assertEquals(1, providerMap.size());
+        Assert.assertTrue(providerMap.containsKey("TEST-SERVICE"));
+        Assert.assertTrue(providerMap.get("TEST-SERVICE").contains("TEST-PROVIDER"));
+    }
+
+    @Test
+    public void testServiceProvidersEmpty() throws IllegalArgumentException,
+            IllegalAccessException {
+        CreateVPCOfferingCmd cmd = new CreateVPCOfferingCmd();
+        ApiCmdTestUtil.set(cmd, ApiConstants.SERVICE_PROVIDER_LIST, new HashMap<String, Map<String, String>>());
+        Assert.assertNull(cmd.getServiceProviders());
+    }
+
+    @Test
+    public void getDetailsNull() throws IllegalArgumentException,
+            IllegalAccessException {
+        CreateVPCOfferingCmd cmd = new CreateVPCOfferingCmd();
+        ApiCmdTestUtil.set(cmd, ApiConstants.SERVICE_PROVIDER_LIST, null);
+        Assert.assertNull(cmd.getServiceProviders());
+    }
+
+}


[2/2] git commit: updated refs/heads/master to a71c985

Posted by da...@apache.org.
findbugs: impossible cast(s) fixed by changing field types

Signed-off-by: Daan Hoogland <da...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e34389a6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e34389a6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e34389a6

Branch: refs/heads/master
Commit: e34389a612ab0931cf3ae3d36c47047dc91b170e
Parents: 31c6b14
Author: Daan Hoogland <da...@gmail.com>
Authored: Mon Jun 29 15:07:34 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jul 6 16:22:19 2015 +0200

----------------------------------------------------------------------
 .../api/command/admin/vpc/CreateVPCOfferingCmd.java   | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e34389a6/api/src/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
index 13e4c0e..99c1719 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java
@@ -64,10 +64,10 @@ public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd {
 
     @Parameter(name = ApiConstants.SERVICE_PROVIDER_LIST, type = CommandType.MAP, description = "provider to service mapping. "
         + "If not specified, the provider for the service will be mapped to the default provider on the physical network")
-    private Map<String, String> serviceProviderList;
+    private Map<String, ? extends Map<String, String>> serviceProviderList;
 
     @Parameter(name = ApiConstants.SERVICE_CAPABILITY_LIST, type = CommandType.MAP, description = "desired service capabilities as part of vpc offering", since = "4.4")
-    private Map serviceCapabilitystList;
+    private Map<String, List<String>> serviceCapabilitystList;
 
     @Parameter(name = ApiConstants.SERVICE_OFFERING_ID,
                type = CommandType.UUID,
@@ -95,10 +95,14 @@ public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd {
         Map<String, List<String>> serviceProviderMap = null;
         if (serviceProviderList != null && !serviceProviderList.isEmpty()) {
             serviceProviderMap = new HashMap<String, List<String>>();
-            Collection servicesCollection = serviceProviderList.values();
-            Iterator iter = servicesCollection.iterator();
+            Collection<? extends Map<String, String>> servicesCollection = serviceProviderList.values();
+            Iterator<? extends Map<String, String>> iter = servicesCollection.iterator();
             while (iter.hasNext()) {
-                HashMap<String, String> services = (HashMap<String, String>)iter.next();
+                Map<String, String> obj = iter.next();
+                if (s_logger.isTraceEnabled()) {
+                    s_logger.trace("service provider entry specified: " + obj);
+                }
+                HashMap<String, String> services = (HashMap<String, String>)obj;
                 String service = services.get("service");
                 String provider = services.get("provider");
                 List<String> providerList = null;