You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by hu...@apache.org on 2012/12/02 20:14:16 UTC

git commit: Setup unittests for the nicira nvp plugin

Updated Branches:
  refs/heads/master 7857b1f62 -> 751e74708


Setup unittests for the nicira nvp plugin

Changed the creation of the NiciraNvpApi to a factory method that can be
overridden by a mock object.

Setup two tests to test the configure function of the NiciraNvpResource
to test this factory method.

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

Branch: refs/heads/master
Commit: 751e74708e295cdfbaaea8463c0476e5f879285b
Parents: 7857b1f
Author: Hugo Trippaers <tr...@gmail.com>
Authored: Sun Dec 2 10:50:14 2012 -0800
Committer: Hugo Trippaers <tr...@gmail.com>
Committed: Sun Dec 2 10:50:14 2012 -0800

----------------------------------------------------------------------
 plugins/network-elements/nicira-nvp/pom.xml        |    8 +++
 .../src/com/cloud/network/nicira/NiciraNvpApi.java |   19 +++---
 .../cloud/network/resource/NiciraNvpResource.java  |   45 +++++++-------
 .../network/resource/NiciraNvpResourceTest.java    |   49 +++++++++++++++
 4 files changed, 89 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/751e7470/plugins/network-elements/nicira-nvp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/pom.xml b/plugins/network-elements/nicira-nvp/pom.xml
index 70f8560..294e88b 100644
--- a/plugins/network-elements/nicira-nvp/pom.xml
+++ b/plugins/network-elements/nicira-nvp/pom.xml
@@ -26,4 +26,12 @@
     <version>4.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
+  <dependencies>
+  	<dependency>
+  		<groupId>org.mockito</groupId>
+  		<artifactId>mockito-all</artifactId>
+  		<version>1.9.5</version>
+  		<scope>test</scope>
+  	</dependency>
+  </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/751e7470/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java
index 43a6c0b..bfab248 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java
@@ -72,15 +72,7 @@ public class NiciraNvpApi {
     
     private HttpClient _client;
 
-    public NiciraNvpApi(String host, String adminuser, String adminpass) throws NiciraNvpApiException {
-        this._host = host;
-        this._adminpass = adminpass;
-        this._adminuser = adminuser;
-        
-        if (_host == null || _adminpass == null || _adminuser == null) {
-            throw new NiciraNvpApiException("host, adminuser and adminpass may not be null");
-        }
-
+    public NiciraNvpApi() {
         _client = new HttpClient(s_httpClientManager);
         _client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
         
@@ -93,6 +85,15 @@ public class NiciraNvpApi {
         
     }
     
+    public void setControllerAddress(String address) {
+    	this._host = address;
+    }
+    
+    public void setAdminCredentials(String username, String password) {
+    	this._adminuser = username;
+    	this._adminpass = password;
+    }
+    
     /**
      * Logs into the Nicira API. The cookie is stored in the <code>_authcookie<code> variable.
      * <p>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/751e7470/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
index c6359d3..b297e7f 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java
@@ -88,39 +88,25 @@ public class NiciraNvpResource implements ServerResource {
     private static final Logger s_logger = Logger.getLogger(NiciraNvpResource.class);
     
     private String _name;
-    private String _ip;
-    private String _adminuser;
-    private String _adminpass;
     private String _guid;
     private String _zoneId;
     private int _numRetries;
     
     private NiciraNvpApi _niciraNvpApi;
     
+    protected NiciraNvpApi createNiciraNvpApi() {
+    	return new NiciraNvpApi();
+    }
+    
     @Override
     public boolean configure(String name, Map<String, Object> params)
             throws ConfigurationException {
-        
+    	
         _name = (String) params.get("name");
         if (_name == null) {
             throw new ConfigurationException("Unable to find name");
         }
         
-        _ip = (String) params.get("ip");
-        if (_ip == null) {
-            throw new ConfigurationException("Unable to find IP");
-        }
-        
-        _adminuser = (String) params.get("adminuser");
-        if (_adminuser == null) {
-            throw new ConfigurationException("Unable to find admin username");
-        }
-        
-        _adminpass = (String) params.get("adminpass");
-        if (_adminpass == null) {
-            throw new ConfigurationException("Unable to find admin password");
-        }               
-        
         _guid = (String)params.get("guid");
         if (_guid == null) {
             throw new ConfigurationException("Unable to find the guid");
@@ -133,11 +119,24 @@ public class NiciraNvpResource implements ServerResource {
         
         _numRetries = 2;
 
-        try {
-            _niciraNvpApi = new NiciraNvpApi(_ip, _adminuser, _adminpass);
-        } catch (NiciraNvpApiException e) {
-            throw new ConfigurationException(e.getMessage());
+        String ip = (String) params.get("ip");
+        if (ip == null) {
+            throw new ConfigurationException("Unable to find IP");
         }
+        
+        String adminuser = (String) params.get("adminuser");
+        if (adminuser == null) {
+            throw new ConfigurationException("Unable to find admin username");
+        }
+        
+        String adminpass = (String) params.get("adminpass");
+        if (adminpass == null) {
+            throw new ConfigurationException("Unable to find admin password");
+        }               
+        
+        _niciraNvpApi = createNiciraNvpApi();
+        _niciraNvpApi.setControllerAddress(ip);
+        _niciraNvpApi.setAdminCredentials(adminuser,adminpass);
 
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/751e7470/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java b/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java
new file mode 100644
index 0000000..9fd2cef
--- /dev/null
+++ b/plugins/network-elements/nicira-nvp/test/com/cloud/network/resource/NiciraNvpResourceTest.java
@@ -0,0 +1,49 @@
+package com.cloud.network.resource;
+
+import static org.mockito.Mockito.*;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.naming.ConfigurationException;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.cloud.network.nicira.NiciraNvpApi;
+
+public class NiciraNvpResourceTest {
+	NiciraNvpApi _nvpApi = mock(NiciraNvpApi.class);
+	NiciraNvpResource _resource;
+	
+	@Before
+	public void setUp() {
+		_resource = new NiciraNvpResource() {
+			protected NiciraNvpApi createNiciraNvpApi() {
+				return _nvpApi;
+			}
+		};
+	}
+	
+	@Test (expected=ConfigurationException.class)
+	public void resourceConfigureFailure() throws ConfigurationException {
+		_resource.configure("NiciraNvpResource", Collections.<String,Object>emptyMap());
+	}
+	
+	@Test 
+	public void resourceConfigure() throws ConfigurationException {
+		Map<String,Object> parameters = new HashMap<String,Object>();
+		parameters.put("name","nvptestdevice");
+		parameters.put("ip","127.0.0.1");
+		parameters.put("adminuser","adminuser");
+		parameters.put("guid", "aaaaa-bbbbb-ccccc");
+		parameters.put("zoneId", "blublub");
+		parameters.put("adminpass","adminpass");
+		_resource.configure("NiciraNvpResource", parameters);
+		
+		verify(_nvpApi).setAdminCredentials("adminuser", "adminpass");
+		verify(_nvpApi).setControllerAddress("127.0.0.1");
+	}
+	
+}