You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ch...@apache.org on 2012/11/21 15:57:47 UTC

[4/5] Moving api tests into a similar package structure as other tests

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/com/cloud/api/commands/AddVpnUserCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/api/commands/AddVpnUserCmdTest.java b/api/test/com/cloud/api/commands/AddVpnUserCmdTest.java
deleted file mode 100644
index 3e2b94a..0000000
--- a/api/test/com/cloud/api/commands/AddVpnUserCmdTest.java
+++ /dev/null
@@ -1,143 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.api.commands;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Mockito;
-
-import com.cloud.api.ServerApiException;
-import com.cloud.network.VpnUser;
-import com.cloud.network.vpn.RemoteAccessVpnService;
-import com.cloud.user.Account;
-import com.cloud.user.AccountService;
-
-public class AddVpnUserCmdTest extends TestCase {
-
-	
-	private AddVpnUserCmd addVpnUserCmd;
-	
-	@Rule
-	public ExpectedException expectedException = ExpectedException.none();
-
-	@Before
-	public void setUp() {
-		
-		addVpnUserCmd = new AddVpnUserCmd() {
-			
-			@Override
-		    public Long getEntityId() {
-		        return 2L;
-		    }
-			
-			@Override
-			public long getEntityOwnerId() {
-				return 2L;
-			}
-			
-			@Override
-			public String getUserName() {
-				return "User Name";
-			}
-			
-			@Override
-			public String getPassword() {
-				return "password";
-			}
-			
-		};
-	}
-	
-	/*@Test
-	public void testExecuteVpnUserNotFound() {
-		
-		EntityManager entityManager = Mockito.mock(EntityManager.class);
-		
-		Mockito.when(entityManager.findById(VpnUser.class, Mockito.anyLong())).thenReturn(null);
-		
-		addVpnUserCmd._entityMgr = entityManager;
-		try {
-		addVpnUserCmd.execute();
-		} catch (Exception e) {
-		}
-		
-	}
-	
-	
-	@Test
-	public void testExecuteVpnUserFound() {
-		
-		EntityManager entityManager = Mockito.mock(EntityManager.class);
-		addVpnUserCmd._entityMgr = entityManager;
-		
-		VpnUser vpnUser = Mockito.mock(VpnUser.class);
-		Mockito.when(entityManager.findById(VpnUser.class, Mockito.anyLong())).thenReturn(vpnUser);
-		addVpnUserCmd.execute();
-		
-	}*/
-	
-	@Test
-	public void testCreateSuccess() {
-		
-		
-		AccountService accountService = Mockito.mock(AccountService.class);
-		
-		Account account = Mockito.mock(Account.class);
-		Mockito.when(accountService.getAccount(Mockito.anyLong())).thenReturn(account);
-		
-		addVpnUserCmd._accountService = accountService;
-		
-		RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class);
-		
-		VpnUser vpnUser =  Mockito.mock(VpnUser.class);
-		Mockito.when(ravService.addVpnUser(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString())).thenReturn(vpnUser);
-		
-		addVpnUserCmd._ravService = ravService;
-		
-		addVpnUserCmd.create();
-		
-	}
-	
-	
-	@Test
-	public void testCreateFailure() {
-		
-		AccountService accountService = Mockito.mock(AccountService.class);
-		Account account = Mockito.mock(Account.class);
-		Mockito.when(accountService.getAccount(Mockito.anyLong())).thenReturn(account);
-
-		addVpnUserCmd._accountService = accountService;
-		
-		RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class);
-		Mockito.when(ravService.addVpnUser(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString())).thenReturn(null);
-		
-		addVpnUserCmd._ravService = ravService;
-		
-		try {
-			addVpnUserCmd.create();
-		} catch (ServerApiException exception) {
-			Assert.assertEquals("Failed to add vpn user", exception.getDescription());
-		}		
-		
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/AgentControlAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/AgentControlAnswerTest.java b/api/test/src/com/cloud/agent/api/test/AgentControlAnswerTest.java
new file mode 100644
index 0000000..5507409
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/AgentControlAnswerTest.java
@@ -0,0 +1,32 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class AgentControlAnswerTest {
+	AgentControlCommand acc = new AgentControlCommand();
+	AgentControlAnswer aca = new AgentControlAnswer(acc);
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = acc.executeInSequence();
+	    assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/AgentControlCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/AgentControlCommandTest.java b/api/test/src/com/cloud/agent/api/test/AgentControlCommandTest.java
new file mode 100644
index 0000000..358a607
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/AgentControlCommandTest.java
@@ -0,0 +1,31 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class AgentControlCommandTest {
+	AgentControlCommand acc = new AgentControlCommand();
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = acc.executeInSequence();
+	    assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/AnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/AnswerTest.java b/api/test/src/com/cloud/agent/api/test/AnswerTest.java
new file mode 100644
index 0000000..3d716c3
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/AnswerTest.java
@@ -0,0 +1,67 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class AnswerTest {
+	AgentControlCommand acc = new AgentControlCommand();
+	Answer a = new Answer(acc, true, "details");
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = a.executeInSequence();
+	    assertFalse(b);
+	}
+
+	@Test
+	public void testGetResult() {
+		boolean b = a.getResult();
+	    assertTrue(b);
+	}
+
+	@Test
+	public void testGetDetails() {
+		String d = a.getDetails();
+	    assertTrue(d.equals("details"));
+	}
+
+	@Test
+	public void testCreateUnsupportedCommandAnswer() {
+		UnsupportedAnswer usa = Answer.createUnsupportedCommandAnswer(acc);
+		boolean b = usa.executeInSequence();
+	    assertFalse(b);
+		
+		b = usa.getResult();
+	    assertFalse(b);
+
+		String d = usa.getDetails();
+	    assertTrue(d.equals("Unsupported command issued:" + acc.toString() + ".  Are you sure you got the right type of server?"));
+
+		usa = Answer.createUnsupportedVersionAnswer(acc);
+		b = usa.executeInSequence();
+	    assertFalse(b);
+		
+		b = usa.getResult();
+	    assertFalse(b);
+
+		d = usa.getDetails();
+	    assertTrue(d.equals("Unsuppored Version."));
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/AttachIsoCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/AttachIsoCommandTest.java b/api/test/src/com/cloud/agent/api/test/AttachIsoCommandTest.java
new file mode 100644
index 0000000..c9d71b0
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/AttachIsoCommandTest.java
@@ -0,0 +1,77 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+import com.cloud.agent.api.*;
+
+public class AttachIsoCommandTest {
+	AttachIsoCommand aic = new AttachIsoCommand("vmname", "isopath", false);
+
+	@Test
+	public void testGetVmName() {
+		String vmName = aic.getVmName();
+	    assertTrue(vmName.equals("vmname"));
+	}
+
+	@Test
+	public void testGetIsoPath() {
+		String isoPath = aic.getIsoPath();
+	    assertTrue(isoPath.equals("isopath"));
+	}
+	
+	@Test
+	public void testIsAttach() {
+		boolean b = aic.isAttach();
+	    assertFalse(b);
+	}
+
+	@Test
+	public void testGetStoreUrl() {
+		aic.setStoreUrl("http://incubator.apache.org/cloudstack/");
+		String url = aic.getStoreUrl();
+		assertTrue(url.equals("http://incubator.apache.org/cloudstack/"));
+	}
+	
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = aic.executeInSequence();
+	    assertTrue(b);
+	}
+	
+	@Test
+	public void testAllowCaching() {
+		boolean b = aic.allowCaching();
+	    assertTrue(b);
+	}
+	
+	@Test
+	public void testGetWait() {
+		int b;
+		aic.setWait(5);
+		b = aic.getWait();
+	    assertEquals(b, 5);
+		aic.setWait(-3);
+		b = aic.getWait();
+	    assertEquals(b, -3);
+		aic.setWait(0);
+		b = aic.getWait();
+	    assertEquals(b, 0);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/AttachVolumeAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/AttachVolumeAnswerTest.java b/api/test/src/com/cloud/agent/api/test/AttachVolumeAnswerTest.java
new file mode 100644
index 0000000..ed27ed1
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/AttachVolumeAnswerTest.java
@@ -0,0 +1,59 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import com.cloud.storage.Storage.StoragePoolType;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class AttachVolumeAnswerTest {
+	AttachVolumeCommand avc = new AttachVolumeCommand(true, "vmname", StoragePoolType.Filesystem, "vFolder", "vPath", "vName", 123456789L, "chainInfo");
+	AttachVolumeAnswer ava1 = new AttachVolumeAnswer(avc);
+	String results = "";
+	AttachVolumeAnswer ava2 = new AttachVolumeAnswer(avc, results);
+	Long deviceId = 10L;
+	AttachVolumeAnswer ava3 = new AttachVolumeAnswer(avc, deviceId);
+
+	@Test
+	public void testGetDeviceId() {
+		Long dId = ava1.getDeviceId();
+	    assertTrue(dId == null);
+
+		dId = ava2.getDeviceId();
+	    assertTrue(dId == null);
+
+		dId = ava3.getDeviceId();
+		Long expected = 10L;
+	    assertEquals(expected, dId);	
+	}
+
+	@Test
+	public void testGetChainInfo() {
+		ava1.setChainInfo("chainInfo");
+		String chainInfo = ava1.getChainInfo();
+	    assertTrue(chainInfo.equals("chainInfo"));
+
+		ava2.setChainInfo("chainInfo");
+		chainInfo = ava2.getChainInfo();
+	    assertTrue(chainInfo.equals("chainInfo"));
+
+		ava3.setChainInfo("chainInfo");
+		chainInfo = ava3.getChainInfo();
+	    assertTrue(chainInfo.equals("chainInfo"));
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/AttachVolumeCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/AttachVolumeCommandTest.java b/api/test/src/com/cloud/agent/api/test/AttachVolumeCommandTest.java
new file mode 100644
index 0000000..4a09371
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/AttachVolumeCommandTest.java
@@ -0,0 +1,116 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.storage.Storage.StoragePoolType;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+import com.cloud.agent.api.*;
+
+public class AttachVolumeCommandTest {
+	AttachVolumeCommand avc = new AttachVolumeCommand(true, "vmname", StoragePoolType.Filesystem, "vFolder", "vPath", "vName", 123456789L, "chainInfo");
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = avc.executeInSequence();
+	    assertTrue(b);
+	}
+	
+	@Test
+	public void testGetAttach() {
+		boolean b = avc.getAttach();
+	    assertTrue(b);
+	}
+	
+	@Test
+	public void testGetVmName() {
+		String vmName = avc.getVmName();
+	    assertTrue(vmName.equals("vmname"));
+	}
+
+	@Test
+	public void testGetPooltype() {
+		StoragePoolType pt = avc.getPooltype();
+	    assertTrue(pt.equals(StoragePoolType.Filesystem));
+	    
+		avc.setPooltype(StoragePoolType.NetworkFilesystem);
+		pt = avc.getPooltype();
+	    assertTrue(pt.equals(StoragePoolType.NetworkFilesystem));
+	    
+		avc.setPooltype(StoragePoolType.IscsiLUN);
+		pt = avc.getPooltype();
+	    assertTrue(pt.equals(StoragePoolType.IscsiLUN));
+	    
+		avc.setPooltype(StoragePoolType.Iscsi);
+		pt = avc.getPooltype();
+	    assertTrue(pt.equals(StoragePoolType.Iscsi));
+	}
+
+	@Test
+	public void testGetVolumeFolder() {
+		String vFolder = avc.getVolumeFolder();
+	    assertTrue(vFolder.equals("vFolder"));
+	}
+	
+	@Test
+	public void testGetVolumePath() {
+		String vPath = avc.getVolumePath();
+	    assertTrue(vPath.equals("vPath"));
+	}
+
+	@Test
+	public void testGetVolumeName() {
+		String vName = avc.getVolumeName();
+	    assertTrue(vName.equals("vName"));
+	}
+
+	@Test
+	public void testGetDeviceId() {
+		Long dId = avc.getDeviceId();
+		Long expected = 123456789L;
+		assertEquals(expected, dId);
+		
+		avc.setDeviceId(5L);
+		dId = avc.getDeviceId();
+		expected = 5L;
+		assertEquals(expected, dId);
+		
+		avc.setDeviceId(0L);
+		dId = avc.getDeviceId();
+		expected = 0L;
+		assertEquals(expected, dId);
+		
+		avc.setDeviceId(-5L);
+		dId = avc.getDeviceId();
+		expected = -5L;
+		assertEquals(expected, dId);
+	}
+	
+	@Test
+	public void testGetPoolUuid() {
+		avc.setPoolUuid("420fa39c-4ef1-a83c-fd93-46dc1ff515ae");
+		String pUuid = avc.getPoolUuid();
+	    assertTrue(pUuid.equals("420fa39c-4ef1-a83c-fd93-46dc1ff515ae"));
+	}
+	
+	@Test
+	public void testGetWait() {
+		String cInfo = avc.getChainInfo();
+	    assertTrue(cInfo.equals("chainInfo"));
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/BackupSnapshotAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/BackupSnapshotAnswerTest.java b/api/test/src/com/cloud/agent/api/test/BackupSnapshotAnswerTest.java
new file mode 100644
index 0000000..f03410a
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/BackupSnapshotAnswerTest.java
@@ -0,0 +1,56 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class BackupSnapshotAnswerTest {
+	BackupSnapshotCommand bsc = new BackupSnapshotCommand();	
+	BackupSnapshotAnswer bsa = new BackupSnapshotAnswer(bsc, true, "results", "bussname", false);
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = bsa.executeInSequence();
+	    assertFalse(b);
+	}
+
+	@Test
+	public void testIsFull() {
+		boolean b = bsa.isFull();
+	    assertFalse(b);
+	}
+
+	@Test
+	public void testGetBackupSnapshotName() {
+		String name = bsa.getBackupSnapshotName();
+	    assertTrue(name.equals("bussname"));
+	}
+	
+	@Test
+	public void testGetResult() {
+		boolean b = bsa.getResult();
+	    assertTrue(b);
+	}
+
+	@Test
+	public void testDetails() {
+		String details = bsa.getDetails();
+	    assertTrue(details.equals("results"));
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/BackupSnapshotCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/BackupSnapshotCommandTest.java b/api/test/src/com/cloud/agent/api/test/BackupSnapshotCommandTest.java
new file mode 100644
index 0000000..c84e24b
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/BackupSnapshotCommandTest.java
@@ -0,0 +1,220 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+import com.cloud.agent.api.to.StorageFilerTO;
+import com.cloud.agent.api.to.SwiftTO;
+import com.cloud.storage.StoragePool;
+import com.cloud.storage.Storage.StoragePoolType;
+import com.cloud.storage.StoragePoolStatus;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
+
+public class BackupSnapshotCommandTest {
+	public StoragePool pool = new StoragePool() {
+		public long getId() {return 1L;};
+		public String getName() {return "name";};
+		public String getUuid() {return "bed9f83e-cac3-11e1-ac8a-0050568b007e";};
+		public StoragePoolType getPoolType() {return StoragePoolType.Filesystem;};
+		public Date getCreated() {
+			Date date = null;
+			try{
+				date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 12:12:12");
+			}
+			catch (ParseException e) {
+				e.printStackTrace();
+			}
+			return date;
+		}
+		public Date getUpdateTime() {return new Date();};
+		public long getDataCenterId() {return 0L;};
+		public long getCapacityBytes() {return 0L;};
+		public long getAvailableBytes() {return 0L;};
+		public Long getClusterId() {return 0L;};
+		public String getHostAddress() {return "hostAddress";};
+		public String getPath() {return "path";};
+		public String getUserInfo() {return "userInfo";};
+		public boolean isShared() {return false;};
+		public boolean isLocal() {return false;};
+		public StoragePoolStatus getStatus() {return StoragePoolStatus.Up;};
+		public int getPort() {return 25;};
+		public Long getPodId() {return 0L;};
+	};
+	
+	BackupSnapshotCommand bsc = new BackupSnapshotCommand(
+			"primaryStoragePoolNameLabel",
+			"http://secondary.Storage.Url",
+			101L,
+			102L,
+			103L,
+			104L,
+			"vPath",
+			pool,
+			"420fa39c-4ef1-a83c-fd93-46dc1ff515ae",
+			"sName",
+			"9012793e-0657-11e2-bebc-0050568b0057",
+			"7167e0b2-f5b0-11e1-8414-0050568b0057",
+			false,
+			"vmName",
+			5
+			);
+	
+	BackupSnapshotCommand bsc1 = new BackupSnapshotCommand();
+
+	@Test
+	public void testGetPrimaryStoragePoolNameLabel() {
+		String label = bsc.getPrimaryStoragePoolNameLabel();
+		assertTrue(label.equals("primaryStoragePoolNameLabel"));
+	}
+
+	@Test
+	public void testGetSecondaryStorageUrl() {
+		String url = bsc.getSecondaryStorageUrl();
+		assertTrue(url.equals("http://secondary.Storage.Url"));
+	}
+
+	@Test
+	public void testGetDataCenterId() {
+		Long dcId = bsc.getDataCenterId();
+		Long expected = 101L;
+		assertEquals(expected, dcId);
+	}
+
+	@Test
+	public void testGetAccountId() {
+		Long aId = bsc.getAccountId();
+		Long expected = 102L;
+		assertEquals(expected, aId);
+	}
+
+	@Test
+	public void testGetVolumeId() {
+		Long vId = bsc.getVolumeId();
+		Long expected = 103L;
+		assertEquals(expected, vId);
+	}
+
+	@Test
+	public void testGetSnapshotId() {
+		Long ssId = bsc.getSnapshotId();
+		Long expected = 104L;
+		assertEquals(expected, ssId);
+	}
+
+	@Test
+	public void testGetPool() {
+		StorageFilerTO pool = bsc.getPool();
+		
+		Long id = pool.getId();
+		Long expectedL = 1L;
+		assertEquals(expectedL, id);
+		
+		String uuid = pool.getUuid();
+		assertTrue(uuid.equals("bed9f83e-cac3-11e1-ac8a-0050568b007e"));
+		
+		String host = pool.getHost();
+		assertTrue(host.equals("hostAddress"));
+		
+		String path = pool.getPath();
+		assertTrue(path.equals("path"));
+		
+		String userInfo = pool.getUserInfo();
+		assertTrue(userInfo.equals("userInfo"));
+		
+		Integer port = pool.getPort();
+		Integer expectedI = 25;
+		assertEquals(expectedI, port);
+		
+		StoragePoolType type = pool.getType();
+		assertEquals(StoragePoolType.Filesystem, type);
+		
+		String str = pool.toString();
+		assertTrue(str.equals("Pool[" + id.toString() + "|" + host + ":" + port.toString() + "|" + path + "]"));
+	}
+
+	@Test
+	public void testGetCreated() {
+		try{
+			Date date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 12:12:12");
+			Date d = pool.getCreated();
+			assertTrue(d.compareTo(date) == 0);
+		}
+		catch (ParseException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void testGetSwift() {
+		SwiftTO s1 = new SwiftTO();
+		bsc.setSwift(s1);
+		SwiftTO s2 = bsc.getSwift();
+		assertEquals(s1, s2);
+	}
+
+	@Test
+	public void testGetSnapshotName() {
+		String ssName = bsc.getSnapshotName();
+		assertTrue(ssName.equals("sName"));
+	}
+
+	@Test
+	public void testGetSnapshotUuid() {
+		String uuid = bsc.getSnapshotUuid();
+	    assertTrue(uuid.equals("420fa39c-4ef1-a83c-fd93-46dc1ff515ae"));
+	}
+
+	@Test
+	public void testGetPrevSnapshotUuid() {
+		String uuid = bsc.getPrevSnapshotUuid();
+	    assertTrue(uuid.equals("9012793e-0657-11e2-bebc-0050568b0057"));
+	}
+
+	@Test
+	public void testGetPrevBackupUuid() {
+		String uuid = bsc.getPrevBackupUuid();
+	    assertTrue(uuid.equals("7167e0b2-f5b0-11e1-8414-0050568b0057"));
+	}
+
+	@Test
+	public void testGetVolumePath() {
+		String path = bsc.getVolumePath();
+	    assertTrue(path.equals("vPath"));
+	    
+		bsc.setVolumePath("vPath1");
+		path = bsc.getVolumePath();
+	    assertTrue(path.equals("vPath1"));
+	    
+		bsc1.setVolumePath("vPath2");
+		path = bsc1.getVolumePath();
+	    assertTrue(path.equals("vPath2"));
+	}
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = bsc.executeInSequence();
+		assertFalse(b);
+
+		b = bsc1.executeInSequence();
+		assertFalse(b);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/BumpUpPriorityCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/BumpUpPriorityCommandTest.java b/api/test/src/com/cloud/agent/api/test/BumpUpPriorityCommandTest.java
new file mode 100644
index 0000000..df31730
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/BumpUpPriorityCommandTest.java
@@ -0,0 +1,73 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import com.cloud.agent.api.routing.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class BumpUpPriorityCommandTest {
+	BumpUpPriorityCommand bupc = new BumpUpPriorityCommand();
+	
+	// test super class
+	@Test
+	public void testSuperGetAccessDetail() {
+	    String value;
+		bupc.setAccessDetail(NetworkElementCommand.ACCOUNT_ID, "accountID");
+		value = bupc.getAccessDetail(NetworkElementCommand.ACCOUNT_ID);
+		assertTrue(value.equals("accountID"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.GUEST_NETWORK_CIDR, "GuestNetworkCIDR");
+		value = bupc.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_CIDR);
+		assertTrue(value.equals("GuestNetworkCIDR"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY, "GuestNetworkGateway");
+		value = bupc.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY);
+		assertTrue(value.equals("GuestNetworkGateway"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG, "GuestVlanTag");
+		value = bupc.getAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG);
+		assertTrue(value.equals("GuestVlanTag"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.ROUTER_NAME, "RouterName");
+		value = bupc.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
+		assertTrue(value.equals("RouterName"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.ROUTER_IP, "RouterIP");
+		value = bupc.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+		assertTrue(value.equals("RouterIP"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, "RouterGuestIP");
+		value = bupc.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP);
+		assertTrue(value.equals("RouterGuestIP"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, "ZoneNetworkType");
+		value = bupc.getAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE);
+		assertTrue(value.equals("ZoneNetworkType"));
+		
+		bupc.setAccessDetail(NetworkElementCommand.GUEST_BRIDGE, "GuestBridge");
+		value = bupc.getAccessDetail(NetworkElementCommand.GUEST_BRIDGE);
+		assertTrue(value.equals("GuestBridge"));
+	}
+	
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = bupc.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/CancelCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/CancelCommandTest.java b/api/test/src/com/cloud/agent/api/test/CancelCommandTest.java
new file mode 100644
index 0000000..f6624ac
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/CancelCommandTest.java
@@ -0,0 +1,43 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class CancelCommandTest {
+	CancelCommand cc = new CancelCommand(123456789L, "goodreason");
+	
+	@Test
+	public void testGetSequence() {
+		Long s = cc.getSequence();
+		assertTrue(123456789L == s);
+	}
+	
+	@Test
+	public void testGetReason() {
+		String r = cc.getReason();
+		assertTrue(r.equals("goodreason"));
+	}
+	
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = cc.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/ChangeAgentAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/ChangeAgentAnswerTest.java b/api/test/src/com/cloud/agent/api/test/ChangeAgentAnswerTest.java
new file mode 100644
index 0000000..ab93648
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/ChangeAgentAnswerTest.java
@@ -0,0 +1,39 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import com.cloud.host.Status.Event;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class ChangeAgentAnswerTest {
+	ChangeAgentCommand cac = new ChangeAgentCommand(123456789L, Event.AgentConnected);
+	ChangeAgentAnswer caa = new ChangeAgentAnswer(cac, true);
+	
+	@Test
+	public void testGetResult() {
+		boolean b = caa.getResult();
+	    assertTrue(b);
+	}
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = caa.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/ChangeAgentCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/ChangeAgentCommandTest.java b/api/test/src/com/cloud/agent/api/test/ChangeAgentCommandTest.java
new file mode 100644
index 0000000..54184ca
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/ChangeAgentCommandTest.java
@@ -0,0 +1,44 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import com.cloud.host.Status.Event;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class ChangeAgentCommandTest {
+	ChangeAgentCommand cac = new ChangeAgentCommand(123456789L, Event.AgentConnected);
+	
+	@Test
+	public void testGetAgentId() {
+		Long aid = cac.getAgentId();
+		assertTrue(123456789L == aid);
+	}
+	
+	@Test
+	public void testGetEvent() {
+		Event e = cac.getEvent();
+		assertEquals(Event.AgentConnected, e);
+	}
+	
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = cac.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/CheckHealthAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/CheckHealthAnswerTest.java b/api/test/src/com/cloud/agent/api/test/CheckHealthAnswerTest.java
new file mode 100644
index 0000000..283ba3c
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/CheckHealthAnswerTest.java
@@ -0,0 +1,45 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class CheckHealthAnswerTest {
+	CheckHealthCommand chc = new CheckHealthCommand();
+	CheckHealthAnswer cha = new CheckHealthAnswer(chc, true);
+	
+	@Test
+	public void testGetResult() {
+		boolean r = cha.getResult();
+	    assertTrue(r);
+	}
+
+	@Test
+	public void testGetDetails() {
+		String d = cha.getDetails();
+		boolean r = cha.getResult();
+	    assertTrue(d.equals("resource is " + (r? "alive" : "not alive")));
+	}
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = cha.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/CheckHealthCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/CheckHealthCommandTest.java b/api/test/src/com/cloud/agent/api/test/CheckHealthCommandTest.java
new file mode 100644
index 0000000..04e310d
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/CheckHealthCommandTest.java
@@ -0,0 +1,37 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class CheckHealthCommandTest {
+	CheckHealthCommand chc = new CheckHealthCommand();
+	
+	@Test
+	public void testGetWait() {
+		int wait = chc.getWait();
+		assertTrue(wait == 50);
+	}
+	
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = chc.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/CheckNetworkAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/CheckNetworkAnswerTest.java b/api/test/src/com/cloud/agent/api/test/CheckNetworkAnswerTest.java
new file mode 100644
index 0000000..53d4435
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/CheckNetworkAnswerTest.java
@@ -0,0 +1,51 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import com.cloud.host.Status.Event;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class CheckNetworkAnswerTest {
+	CheckNetworkCommand cnc = new CheckNetworkCommand();
+	CheckNetworkAnswer cna = new CheckNetworkAnswer(cnc, true, "details", true);
+	
+	@Test
+	public void testGetResult() {
+		boolean b = cna.getResult();
+	    assertTrue(b);
+	}
+
+	@Test
+	public void testGetDetails() {
+		String d = cna.getDetails();
+	    assertTrue(d.equals("details"));
+	}
+
+	@Test
+	public void testNeedReconnect() {
+		boolean b = cna.needReconnect();
+	    assertTrue(b);
+	}
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = cna.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/CheckNetworkCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/CheckNetworkCommandTest.java b/api/test/src/com/cloud/agent/api/test/CheckNetworkCommandTest.java
new file mode 100644
index 0000000..c1bdd29
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/CheckNetworkCommandTest.java
@@ -0,0 +1,39 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import java.util.List;
+import com.cloud.agent.api.*;
+import com.cloud.network.PhysicalNetworkSetupInfo;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class CheckNetworkCommandTest {
+	CheckNetworkCommand cnc = new CheckNetworkCommand();
+	
+	@Test
+	public void testGetPhysicalNetworkInfoList() {
+		List<PhysicalNetworkSetupInfo> networkInfoList = cnc.getPhysicalNetworkInfoList();
+		assertNull(networkInfoList);
+	}
+	
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = cnc.executeInSequence();
+		assertTrue(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/CheckOnHostCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/CheckOnHostCommandTest.java b/api/test/src/com/cloud/agent/api/test/CheckOnHostCommandTest.java
new file mode 100644
index 0000000..3b6e01c
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/CheckOnHostCommandTest.java
@@ -0,0 +1,366 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import java.util.List;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
+import com.cloud.agent.api.*;
+import com.cloud.agent.api.to.HostTO;
+import com.cloud.host.Host;
+import com.cloud.host.Status;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.resource.ResourceState;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class CheckOnHostCommandTest {
+	public Host host = new Host() {
+		public Status getState() {return Status.Up;};
+		public long getId() {return 101L;};
+	    public String getName() {return "hostName";};
+	    public Type getType() {return Host.Type.Storage;};
+		public Date getCreated() {
+			Date date = null;
+			try{
+				date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 12:12:12");
+			}
+			catch (ParseException e) {
+				e.printStackTrace();
+			}
+			return date;
+		}
+		public Status getStatus() {return Status.Up;};
+	    public String getPrivateIpAddress() {return "10.1.1.1";};
+	    public String getStorageIpAddress() {return "10.1.1.2";};
+	    public String getGuid() {return "bed9f83e-cac3-11e1-ac8a-0050568b007e";};
+	    public Long getTotalMemory() {return 100000000000L;};
+	    public Integer getCpus() {return 16;};
+	    public Long getSpeed() {return 2000000000L;};
+	    public Integer getProxyPort() {return 22;};
+	    public Long getPodId() {return 16L;};
+	    public long getDataCenterId() {return 17L;};
+	    public String getParent() {return "parent";};
+	    public String getStorageIpAddressDeux() {return "10.1.1.3";};
+	    public HypervisorType getHypervisorType() {return HypervisorType.XenServer;};
+	    public Date getDisconnectedOn() {
+			Date date = null;
+			try{
+				date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/2012 12:12:12");
+			}
+			catch (ParseException e) {
+				e.printStackTrace();
+			}
+			return date;
+		}
+	    public String getVersion() {return "4.0.1";};
+	    public long getTotalSize() {return 100000000000L;};
+	    public String getCapabilities() {return "capabilities";};
+	    public long getLastPinged() {return 1L;};
+	    public Long getManagementServerId() {return 2L;};
+	    public Date getRemoved() {
+			Date date = null;
+			try{
+				date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("02/01/2012 12:12:12");
+			}
+			catch (ParseException e) {
+				e.printStackTrace();
+			}
+			return date;
+		};
+		public Long getClusterId() {return 3L;};
+	    public String getPublicIpAddress() {return "10.1.1.4";};
+	    public String getPublicNetmask() {return "255.255.255.8";};
+	    public String getPrivateNetmask() {return "255.255.255.16";};
+	    public String getStorageNetmask() {return "255.255.255.24";};
+	    public String getStorageMacAddress() {return "01:f4:17:38:0e:26";};
+	    public String getPublicMacAddress() {return "02:f4:17:38:0e:26";};
+	    public String getPrivateMacAddress() {return "03:f4:17:38:0e:26";};
+	    public String getStorageNetmaskDeux() {return "255.255.255.25";};
+	    public String getStorageMacAddressDeux() {return "01:f4:17:38:0e:27";};
+	    public String getHypervisorVersion() {return "1.2.3.0";};
+	    public boolean isInMaintenanceStates() {return false;};	    
+	    public ResourceState getResourceState() {return ResourceState.Enabled;}; 
+	};
+	
+	CheckOnHostCommand cohc = new CheckOnHostCommand(host);
+		
+	@Test
+	public void testGetHost() {
+		HostTO h = cohc.getHost();
+		assertNotNull(h);
+	}
+	
+	@Test
+	public void testGetState() {
+		Status s = host.getState();
+		assertTrue(s == Status.Up);
+	}
+	
+	@Test
+	public void testGetId() {
+		Long id = host.getId();
+		assertTrue(101L == id);
+	}
+	
+	@Test
+	public void testGetName() {
+		String name = host.getName();
+		assertTrue(name.equals("hostName"));
+	}
+	
+	@Test
+	public void testGetType() {
+		Host.Type t = host.getType();
+		assertTrue(t == Host.Type.Storage);
+	}
+	
+	@Test
+	public void testGetCreated() {
+		try{
+			Date date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 12:12:12");
+			Date d = host.getCreated();
+			assertTrue(d.compareTo(date) == 0);
+		}
+		catch (ParseException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void testGetStatus() {
+		Status s = host.getStatus();
+		assertTrue(s == Status.Up);
+	}
+	
+	@Test
+	public void testGetPrivateIpAddress() {
+		String addr = host.getPrivateIpAddress();
+		assertTrue(addr.equals("10.1.1.1"));
+	}
+	
+	@Test
+	public void testGetStorageIpAddress() {
+		String addr = host.getStorageIpAddress();
+		assertTrue(addr.equals("10.1.1.2"));
+	}
+	
+	@Test
+	public void testGetGuid() {
+		String guid = host.getGuid();
+		assertTrue(guid.equals("bed9f83e-cac3-11e1-ac8a-0050568b007e"));
+	}
+	
+	@Test
+	public void testGetTotalMemory() {
+		Long m = host.getTotalMemory();
+		assertTrue(m == 100000000000L);
+	}
+	
+	@Test
+	public void testGetCpus() {
+		int cpus = host.getCpus();
+		assertTrue(cpus == 16);
+	}
+	
+	@Test
+	public void testGetSpeed() {
+		Long spped = host.getSpeed();
+		assertTrue(spped == 2000000000L);
+	}
+	
+	@Test
+	public void testGetProxyPort() {
+		Integer port = host.getProxyPort();
+		assertTrue(port == 22);
+	}
+	
+	@Test
+	public void testGetPodId() {
+		Long pID = host.getPodId();
+		assertTrue(pID == 16L);
+	}
+	
+	@Test
+	public void testGetDataCenterId() {
+		long dcID = host.getDataCenterId();
+		assertTrue(dcID == 17L);
+	}
+	
+	@Test
+	public void testGetParent() {
+		String p = host.getParent();
+		assertTrue(p.equals("parent"));
+	}
+	
+	@Test
+	public void testGetStorageIpAddressDeux() {
+		String addr = host.getStorageIpAddressDeux();
+		assertTrue(addr.equals("10.1.1.3"));
+	}
+	
+	@Test
+	public void testGetHypervisorType() {
+		HypervisorType type = host.getHypervisorType();
+		assertTrue(type == HypervisorType.XenServer);
+	}
+	
+	@Test
+	public void testGetDisconnectedOn() {
+		try{
+			Date date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/2012 12:12:12");
+			Date d = host.getDisconnectedOn();
+			assertTrue(d.compareTo(date) == 0);
+		}
+		catch (ParseException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void testGetVersion() {
+		String v = host.getVersion();
+		assertTrue(v.equals("4.0.1"));
+	}
+	
+	@Test
+	public void testGetTotalSize() {
+		long size = host.getTotalSize();
+		assertTrue(size == 100000000000L);
+	}
+	
+	@Test
+	public void testGetCapabilities() {
+		String c = host.getCapabilities();
+		assertTrue(c.equals("capabilities"));
+	}
+	
+	@Test
+	public void testGetLastPinged() {
+		long lp = host.getLastPinged();
+		assertTrue(lp == 1L);
+	}
+	
+	@Test
+	public void testGetManagementServerId() {
+		Long msID = host.getManagementServerId();
+		assertTrue(msID == 2L);
+	}
+	
+	@Test
+	public void testGetRemoved() {
+		try{
+			Date date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("02/01/2012 12:12:12");
+			Date d = host.getRemoved();
+			assertTrue(d.compareTo(date) == 0);
+		}
+		catch (ParseException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void testGetClusterId() {
+		Long cID = host.getClusterId();
+		assertTrue(cID == 3L);
+	}
+	
+	@Test
+	public void testGetPublicIpAddress() {
+		String pipAddr = host.getPublicIpAddress();
+		assertTrue(pipAddr.equals("10.1.1.4"));
+	}
+	
+	@Test
+	public void testGetPublicNetmask() {
+		String pMask = host.getPublicNetmask();
+		assertTrue(pMask.equals("255.255.255.8"));
+	}
+	
+	@Test
+	public void testGetPrivateNetmask() {
+		String pMask = host.getPrivateNetmask();
+		assertTrue(pMask.equals("255.255.255.16"));
+	}
+	
+	@Test
+	public void testGetStorageNetmask() {
+		String sMask = host.getStorageNetmask();
+		assertTrue(sMask.equals("255.255.255.24"));
+	}
+	
+	@Test
+	public void testGetStorageMacAddress() {
+		String sMac = host.getStorageMacAddress();
+		assertTrue(sMac.equals("01:f4:17:38:0e:26"));
+	}
+	
+	@Test
+	public void testGetPublicMacAddress() {
+		String pMac = host.getPublicMacAddress();
+		assertTrue(pMac.equals("02:f4:17:38:0e:26"));
+	}
+	
+	@Test
+	public void testGetPrivateMacAddress() {
+		String pMac = host.getPrivateMacAddress();
+		assertTrue(pMac.equals("03:f4:17:38:0e:26"));
+	}
+	
+	@Test
+	public void testGetStorageNetmaskDeux() {
+		String sMask = host.getStorageNetmaskDeux();
+		assertTrue(sMask.equals("255.255.255.25"));
+	}
+	
+	@Test
+	public void testGetStorageMacAddressDeux() {
+		String sMac = host.getStorageMacAddressDeux();
+		assertTrue(sMac.equals("01:f4:17:38:0e:27"));
+	}
+	
+	@Test
+	public void testGetHypervisorVersion() {
+		String v = host.getHypervisorVersion();
+		assertTrue(v.equals("1.2.3.0"));
+	}
+	
+	@Test
+	public void testIsInMaintenanceStates() {
+		boolean b = host.isInMaintenanceStates();
+		assertFalse(b);
+	}
+	
+	@Test
+	public void testGetResourceState() {
+		ResourceState r = host.getResourceState();
+		assertTrue(r == ResourceState.Enabled);
+	}
+	
+	@Test
+	public void testGetWait() {
+		int wait = cohc.getWait();
+		assertTrue(20 == wait);
+	}
+	
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = cohc.executeInSequence();
+		assertFalse(b);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/agent/api/test/SnapshotCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/agent/api/test/SnapshotCommandTest.java b/api/test/src/com/cloud/agent/api/test/SnapshotCommandTest.java
new file mode 100644
index 0000000..005e0a0
--- /dev/null
+++ b/api/test/src/com/cloud/agent/api/test/SnapshotCommandTest.java
@@ -0,0 +1,98 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.agent.api.test;
+
+import com.cloud.agent.api.*;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class SnapshotCommandTest {
+	SnapshotCommand ssc = new SnapshotCommand("primaryStoragePoolNameLabel",
+                                           "http://secondary.Storage.Url",
+                                           "420fa39c-4ef1-a83c-fd93-46dc1ff515ae",
+                                           "snapshotName",
+                                           101L,
+                                           102L,
+                                           103L);
+	
+	SnapshotCommand ssc1 = new SnapshotCommand();
+
+	@Test
+	public void testGetPrimaryStoragePoolNameLabel() {
+		String label = ssc.getPrimaryStoragePoolNameLabel();
+		assertTrue(label.equals("primaryStoragePoolNameLabel"));
+	}
+
+	@Test
+	public void testGetSecondaryStorageUrl() {
+		String url = ssc.getSecondaryStorageUrl();
+		assertTrue(url.equals("http://secondary.Storage.Url"));
+	}
+
+	@Test
+	public void testGetSnapshotUuid() {
+		String uuid = ssc.getSnapshotUuid();
+	    assertTrue(uuid.equals("420fa39c-4ef1-a83c-fd93-46dc1ff515ae"));
+	}
+
+	@Test
+	public void testGetSnapshotName() {
+		String name = ssc.getSnapshotName();
+	    assertTrue(name.equals("snapshotName"));
+	}
+
+	@Test
+	public void testGetVolumePath() {
+		ssc.setVolumePath("vPath");
+		String path = ssc.getVolumePath();
+	    assertTrue(path.equals("vPath"));
+	    
+		ssc1.setVolumePath("vPath1");
+		path = ssc1.getVolumePath();
+	    assertTrue(path.equals("vPath1"));
+	}
+
+	@Test
+	public void testExecuteInSequence() {
+		boolean b = ssc.executeInSequence();
+		assertFalse(b);
+
+		b = ssc1.executeInSequence();
+		assertFalse(b);
+	}
+
+	@Test
+	public void testGetDataCenterId() {
+		Long dcId = ssc.getDataCenterId();
+		Long expected = 101L;
+		assertEquals(expected, dcId);
+	}
+
+	@Test
+	public void testGetAccountId() {
+		Long aId = ssc.getAccountId();
+		Long expected = 102L;
+		assertEquals(expected, aId);
+	}
+
+	@Test
+	public void testGetVolumeId() {
+		Long vId = ssc.getVolumeId();
+		Long expected = 103L;
+		assertEquals(expected, vId);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/api/commands/test/ActivateProjectCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/api/commands/test/ActivateProjectCmdTest.java b/api/test/src/com/cloud/api/commands/test/ActivateProjectCmdTest.java
new file mode 100644
index 0000000..1b08a6e
--- /dev/null
+++ b/api/test/src/com/cloud/api/commands/test/ActivateProjectCmdTest.java
@@ -0,0 +1,86 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.api.commands.test;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+
+import com.cloud.api.ResponseGenerator;
+import com.cloud.api.response.ProjectResponse;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.projects.Project;
+import com.cloud.projects.ProjectService;
+import com.cloud.user.Account;
+import com.cloud.user.UserContext;
+
+public class ActivateProjectCmdTest extends TestCase {
+	
+	private ActivateProjectCmd activateProjectCmd;
+	
+	@Rule
+	public ExpectedException expectedException = ExpectedException.none();
+	
+	@Before
+	public void setUp() {
+		
+		activateProjectCmd = new ActivateProjectCmd(){
+			
+			@Override
+			public Long getId() {
+				return 2L;
+			}
+			
+		};
+	}
+	
+	
+	@Test
+	public void testGetEntityOwnerIdForNullProject() {
+		ProjectService projectService = Mockito.mock(ProjectService.class);
+		Mockito.when(projectService.getProject(Mockito.anyLong())).thenReturn(null);
+		activateProjectCmd._projectService = projectService;
+		
+		try {
+			activateProjectCmd.getEntityOwnerId();
+		} catch(InvalidParameterValueException exception) {
+			Assert.assertEquals("Unable to find project by id 2", exception.getLocalizedMessage());
+		}
+	}
+	
+	@Test
+	public void testGetEntityOwnerIdForProject() {
+		Project project = Mockito.mock(Project.class);
+		Mockito.when(project.getId()).thenReturn(2L);
+		ProjectService projectService = Mockito.mock(ProjectService.class);
+		Account account = Mockito.mock(Account.class);
+		Mockito.when(account.getId()).thenReturn(2L);
+		Mockito.when(projectService.getProject(Mockito.anyLong())).thenReturn(project);
+		
+		Mockito.when(projectService.getProjectOwner(Mockito.anyLong())).thenReturn(account);
+		activateProjectCmd._projectService = projectService;
+		
+		Assert.assertEquals(2L, activateProjectCmd.getEntityOwnerId());
+		
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/api/commands/test/AddAccountToProjectCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/api/commands/test/AddAccountToProjectCmdTest.java b/api/test/src/com/cloud/api/commands/test/AddAccountToProjectCmdTest.java
new file mode 100644
index 0000000..9b28327
--- /dev/null
+++ b/api/test/src/com/cloud/api/commands/test/AddAccountToProjectCmdTest.java
@@ -0,0 +1,175 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.api.commands.test;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.projects.Project;
+import com.cloud.projects.ProjectService;
+import com.cloud.user.Account;
+
+public class AddAccountToProjectCmdTest extends TestCase {
+
+	
+	private AddAccountToProjectCmd addAccountToProjectCmd;
+	
+	@Rule
+	public ExpectedException expectedException = ExpectedException.none();
+	
+	@Before
+	public void setUp() {
+		addAccountToProjectCmd = new AddAccountToProjectCmd(){
+			
+			@Override
+			public Long getProjectId() {
+				return 2L;
+			}
+			
+			@Override
+			public String getAccountName() {
+				
+	// to run the test testGetEventDescriptionForAccount set the accountName 
+//				 	return "accountName";
+	// to run the test the testGetEventDescriptionForNullAccount return accountname as null
+                     return null;
+		    }
+			
+			@Override
+			 public String getEmail() {
+//                   return "customer@abc.com";
+			        return null;
+			    }
+
+		};
+	}
+	
+	
+	/****
+	 * Condition not handled in the code
+	 * 
+	*****/
+	
+	/*@Test
+	public void testGetEntityOwnerIdForNullProject() {
+		
+		ProjectService projectService = Mockito.mock(ProjectService.class);
+		Mockito.when(projectService.getProject(Mockito.anyLong())).thenReturn(null);
+		addAccountToProjectCmd._projectService = projectService;
+		
+		try {
+			addAccountToProjectCmd.getEntityOwnerId();
+		} catch(InvalidParameterValueException exception) {
+			Assert.assertEquals("Unable to find project by id 2", exception.getLocalizedMessage());
+		}
+		
+	}*/
+	
+	
+	@Test
+	public void testGetEntityOwnerIdForProject() {
+
+		Project project = Mockito.mock(Project.class);
+		Mockito.when(project.getId()).thenReturn(2L);
+		
+		ProjectService projectService = Mockito.mock(ProjectService.class);
+		Account account = Mockito.mock(Account.class);
+		
+		Mockito.when(account.getId()).thenReturn(2L);
+		Mockito.when(projectService.getProject(Mockito.anyLong())).thenReturn(
+				project);
+
+		Mockito.when(projectService.getProjectOwner(Mockito.anyLong()))
+				.thenReturn(account);
+		addAccountToProjectCmd._projectService = projectService;
+
+		Assert.assertEquals(2L, addAccountToProjectCmd.getEntityOwnerId());
+
+	}	
+	
+	/**
+	 * To run the test uncomment the return statement for getAccountName() in setup() and return null 
+	 * 
+	 * **/
+	
+	
+	/*@Test
+	public void testGetEventDescriptionForNullAccount() {
+		
+		String result = addAccountToProjectCmd.getEventDescription();
+		String expected = "Sending invitation to email null to join project: 2";
+		Assert.assertEquals(expected, result);
+		
+	}*/
+	
+	/***
+	 * 
+	 * 
+	 * 
+	 * ***/
+	
+	
+	
+	/*@Test
+	public void testGetEventDescriptionForAccount() {
+		
+		String result = addAccountToProjectCmd.getEventDescription();
+		String expected = "Adding account accountName to project: 2";
+		Assert.assertEquals(expected, result);
+		
+	}*/
+
+	@Test
+	public void testExecuteForNullAccountNameEmail() {
+		
+		try {
+			addAccountToProjectCmd.execute();
+		} catch(InvalidParameterValueException exception) {
+			Assert.assertEquals("Either accountName or email is required", exception.getLocalizedMessage());
+		}
+		
+	}
+
+	
+	/*@Test
+	public void testExecuteForAccountNameEmail() {
+		
+		try {
+			
+			ComponentLocator c = Mockito.mock(ComponentLocator.class);
+			UserContext userContext = Mockito.mock(UserContext.class);
+			
+//			Mockito.when(userContext.current()).thenReturn(userContext);
+			
+			
+			addAccountToProjectCmd.execute();
+		} catch(InvalidParameterValueException exception) {
+			Assert.assertEquals("Either accountName or email is required", exception.getLocalizedMessage());
+		}
+		
+	}*/
+
+	
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/api/commands/test/AddClusterCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/api/commands/test/AddClusterCmdTest.java b/api/test/src/com/cloud/api/commands/test/AddClusterCmdTest.java
new file mode 100644
index 0000000..a5afbd5
--- /dev/null
+++ b/api/test/src/com/cloud/api/commands/test/AddClusterCmdTest.java
@@ -0,0 +1,123 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.api.commands.test;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+
+import com.cloud.api.ResponseGenerator;
+import com.cloud.api.ServerApiException;
+import com.cloud.api.response.ClusterResponse;
+import com.cloud.exception.DiscoveryException;
+import com.cloud.exception.ResourceInUseException;
+import com.cloud.org.Cluster;
+import com.cloud.resource.ResourceService;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+public class AddClusterCmdTest extends TestCase {
+	
+	private AddClusterCmd addClusterCmd;
+	private ResourceService resourceService;
+	private ResponseGenerator responseGenerator;
+
+	
+	@Rule
+	public ExpectedException expectedException = ExpectedException.none();
+
+	@Before
+	public void setUp() {
+/*		resourceService = Mockito.mock(ResourceService.class);
+		responseGenerator = Mockito.mock(ResponseGenerator.class);
+*/		addClusterCmd = new AddClusterCmd(){
+		};
+	}
+
+	
+	
+	@Test
+	public void testExecuteForNullResult() {
+
+		ResourceService resourceService = Mockito.mock(ResourceService.class);
+		
+		try {
+			Mockito.when(resourceService.discoverCluster(addClusterCmd)).thenReturn(null);
+		} catch (ResourceInUseException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (DiscoveryException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		addClusterCmd._resourceService = resourceService;
+		
+		try { 
+			addClusterCmd.execute();
+		} catch (ServerApiException exception) {
+			Assert.assertEquals("Failed to add cluster", exception.getDescription());
+		}
+		
+	}
+	
+	
+	@Test
+	public void testExecuteForEmptyResult() {
+
+		ResourceService resourceService = Mockito.mock(ResourceService.class);
+		addClusterCmd._resourceService = resourceService;
+    	
+		try {
+		    addClusterCmd.execute();
+		} catch (ServerApiException exception) {
+			Assert.assertEquals("Failed to add cluster", exception.getDescription());
+		}
+		
+	}
+	
+
+	@Test
+	public void testExecuteForResult() throws Exception {
+		
+		resourceService = Mockito.mock(ResourceService.class);
+		responseGenerator = Mockito.mock(ResponseGenerator.class);
+
+		addClusterCmd._resourceService = resourceService;
+		addClusterCmd._responseGenerator = responseGenerator;
+		
+		Cluster cluster = Mockito.mock(Cluster.class);
+		Cluster[] clusterArray = new Cluster[]{cluster};
+		
+		Mockito.when(resourceService.discoverCluster(addClusterCmd)).thenReturn(Arrays.asList(clusterArray));
+		
+		addClusterCmd.execute();
+		
+		
+	}
+		
+}
+
+ 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/api/commands/test/AddHostCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/api/commands/test/AddHostCmdTest.java b/api/test/src/com/cloud/api/commands/test/AddHostCmdTest.java
new file mode 100644
index 0000000..cd8056c
--- /dev/null
+++ b/api/test/src/com/cloud/api/commands/test/AddHostCmdTest.java
@@ -0,0 +1,169 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.api.commands.test;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+
+import com.cloud.api.ResponseGenerator;
+import com.cloud.api.ServerApiException;
+import com.cloud.api.response.HostResponse;
+import com.cloud.api.response.ListResponse;
+import com.cloud.exception.DiscoveryException;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.host.Host;
+import com.cloud.host.Status;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.resource.ResourceService;
+import com.cloud.resource.ResourceState;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+public class AddHostCmdTest extends TestCase {
+	
+	private AddHostCmd addHostCmd;
+	private ResourceService resourceService;
+	private ResponseGenerator responseGenerator;
+
+	@Rule
+	public ExpectedException expectedException = ExpectedException.none();
+
+	@Before
+	public void setUp() {
+		resourceService = Mockito.mock(ResourceService.class);
+		responseGenerator = Mockito.mock(ResponseGenerator.class);
+		addHostCmd = new AddHostCmd(){
+		};
+	}
+
+	@Test
+	public void testExecuteForEmptyResult() {
+		addHostCmd._resourceService = resourceService;
+		
+		try {
+		    addHostCmd.execute();
+		} catch(ServerApiException exception) {
+			Assert.assertEquals("Failed to add host", exception.getDescription());
+		}
+		
+	}
+	
+	
+	@Test
+	public void testExecuteForNullResult() {
+
+		ResourceService resourceService = Mockito.mock(ResourceService.class);
+		addHostCmd._resourceService = resourceService;
+		
+		try {
+			Mockito.when(resourceService.discoverHosts(addHostCmd)).thenReturn(null);
+		} catch (InvalidParameterValueException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (DiscoveryException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		try {
+		    addHostCmd.execute();
+		} catch(ServerApiException exception) {
+			Assert.assertEquals("Failed to add host", exception.getDescription());
+		}
+		
+	}
+	
+	
+/*	@Test
+	public void testExecuteForResult() throws Exception {
+		
+		addHostCmd._resourceService = resourceService;
+		addHostCmd._responseGenerator = responseGenerator;
+		MockHost mockInstance = new MockHost();
+		MockHost[] mockArray = new MockHost[]{mockInstance};
+		HostResponse responseHost = new HostResponse();
+		responseHost.setName("Test");
+		Mockito.when(resourceService.discoverHosts(addHostCmd)).thenReturn(Arrays.asList(mockArray));
+		Mockito.when(responseGenerator.createHostResponse(mockInstance)).thenReturn(responseHost);
+		addHostCmd.execute();
+		Mockito.verify(responseGenerator).createHostResponse(mockInstance);
+		ListResponse<HostResponse> actualResponse = ((ListResponse<HostResponse>)addHostCmd.getResponseObject());
+		Assert.assertEquals(responseHost, actualResponse.getResponses().get(0));
+		Assert.assertEquals("addhostresponse", actualResponse.getResponseName());
+	}
+*/	
+	@Test
+	public void testExecuteForResult() throws Exception {
+
+		addHostCmd._resourceService = resourceService;
+		addHostCmd._responseGenerator = responseGenerator;
+        Host host = Mockito.mock(Host.class);
+		Host[] mockArray = new Host[]{host};
+
+		HostResponse responseHost = new HostResponse();
+		responseHost.setName("Test");
+		Mockito.when(resourceService.discoverHosts(addHostCmd)).thenReturn(Arrays.asList(mockArray));
+		Mockito.when(responseGenerator.createHostResponse(host)).thenReturn(responseHost);
+		addHostCmd.execute();
+		Mockito.verify(responseGenerator).createHostResponse(host);
+		ListResponse<HostResponse> actualResponse = ((ListResponse<HostResponse>)addHostCmd.getResponseObject());
+		Assert.assertEquals(responseHost, actualResponse.getResponses().get(0));
+		Assert.assertEquals("addhostresponse", actualResponse.getResponseName());
+
+	}
+	
+	
+	@Test
+	public void testExecuteForDiscoveryException() {
+		
+		addHostCmd._resourceService = resourceService;
+	
+		try {
+			Mockito.when(resourceService.discoverHosts(addHostCmd)).thenThrow(DiscoveryException.class);
+		} catch (InvalidParameterValueException e) {
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (DiscoveryException e) {
+			e.printStackTrace();
+		}
+		
+		try {
+     		addHostCmd.execute();
+		} catch(ServerApiException exception) {
+			Assert.assertNull(exception.getDescription());
+		}
+		
+	}
+	
+	
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/api/commands/test/AddNetworkServiceProviderCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/api/commands/test/AddNetworkServiceProviderCmdTest.java b/api/test/src/com/cloud/api/commands/test/AddNetworkServiceProviderCmdTest.java
new file mode 100644
index 0000000..ab8e848
--- /dev/null
+++ b/api/test/src/com/cloud/api/commands/test/AddNetworkServiceProviderCmdTest.java
@@ -0,0 +1,118 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.api.commands.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+
+import com.cloud.api.ServerApiException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.network.NetworkService;
+import com.cloud.network.PhysicalNetworkServiceProvider;
+
+public class AddNetworkServiceProviderCmdTest extends TestCase {
+
+	private AddNetworkServiceProviderCmd addNetworkServiceProviderCmd;
+	
+	@Rule
+	public ExpectedException expectedException = ExpectedException.none();
+
+	@Before
+	public void setUp() {
+		addNetworkServiceProviderCmd = new AddNetworkServiceProviderCmd() {
+			
+			@Override
+			 public Long getPhysicalNetworkId() {
+		        return 2L;
+		    }
+			
+			@Override
+			 public String getProviderName() {
+		        return "ProviderName";
+		    }
+			
+			@Override 
+			public Long getDestinationPhysicalNetworkId() {
+			        return 2L;
+			 }
+
+			@Override 
+			public List<String> getEnabledServices() {
+				 List<String> lOfEnabledServices = new ArrayList<String>();
+				 lOfEnabledServices.add("Enabled Services");
+			    return lOfEnabledServices;
+			 }
+			
+			public Long getEntityId() {
+		        return 2L;
+		    }
+			
+		};
+		
+	}
+
+	@Test
+	public void testCreateProviderToPhysicalNetworkSuccess() {
+		
+		NetworkService networkService = Mockito.mock(NetworkService.class);
+		addNetworkServiceProviderCmd._networkService = networkService;
+
+		PhysicalNetworkServiceProvider physicalNetworkServiceProvider = Mockito.mock(PhysicalNetworkServiceProvider.class);
+		Mockito.when(networkService.addProviderToPhysicalNetwork(Mockito.anyLong(),
+						Mockito.anyString(), Mockito.anyLong(),
+						Mockito.anyList())).thenReturn(
+				physicalNetworkServiceProvider);
+
+		try {
+			addNetworkServiceProviderCmd.create();
+		} catch (ResourceAllocationException e) {
+			e.printStackTrace();
+		}
+		
+	}
+	
+	
+	@Test
+	public void testCreateProviderToPhysicalNetworkFailure() throws ResourceAllocationException {
+		
+		NetworkService networkService = Mockito.mock(NetworkService.class);
+		addNetworkServiceProviderCmd._networkService = networkService;
+
+		Mockito.when(networkService.addProviderToPhysicalNetwork(Mockito.anyLong(),
+						Mockito.anyString(), Mockito.anyLong(),
+						Mockito.anyList())).thenReturn(null);
+
+		try {
+			addNetworkServiceProviderCmd.create();
+		} catch (ServerApiException exception) {
+		  Assert.assertEquals("Failed to add service provider entity to physical network", exception.getDescription());	
+		}
+		
+		
+	}
+	
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e953b774/api/test/src/com/cloud/api/commands/test/AddSecondaryStorageCmdTest.java
----------------------------------------------------------------------
diff --git a/api/test/src/com/cloud/api/commands/test/AddSecondaryStorageCmdTest.java b/api/test/src/com/cloud/api/commands/test/AddSecondaryStorageCmdTest.java
new file mode 100644
index 0000000..59f8367
--- /dev/null
+++ b/api/test/src/com/cloud/api/commands/test/AddSecondaryStorageCmdTest.java
@@ -0,0 +1,120 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package src.com.cloud.api.commands.test;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+
+import com.cloud.api.ResponseGenerator;
+import com.cloud.api.ServerApiException;
+import com.cloud.api.response.HostResponse;
+import com.cloud.api.response.ListResponse;
+import com.cloud.exception.DiscoveryException;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.host.Host;
+import com.cloud.resource.ResourceService;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+public class AddSecondaryStorageCmdTest extends TestCase {
+
+	private AddSecondaryStorageCmd addSecondaryStorageCmd;
+	
+	@Rule
+	public ExpectedException expectedException = ExpectedException.none();
+
+	@Before
+	public void setUp() {
+		addSecondaryStorageCmd = new AddSecondaryStorageCmd() {
+		};
+		
+	}
+
+	
+	@Test
+	public void testExecuteForResult() throws Exception {
+		
+		ResourceService resourceService = Mockito.mock(ResourceService.class);
+		addSecondaryStorageCmd._resourceService = resourceService;
+		
+		Host host = Mockito.mock(Host.class);
+		Host[] mockHosts = new Host[] {host};
+		
+		Mockito.when(resourceService.discoverHosts(addSecondaryStorageCmd)).thenReturn(Arrays.asList(mockHosts));
+		
+		ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class);
+		addSecondaryStorageCmd._responseGenerator = responseGenerator;
+		
+		HostResponse responseHost = new HostResponse();
+		responseHost.setName("Test");
+
+		Mockito.when(responseGenerator.createHostResponse(host)).thenReturn(responseHost);
+		
+		addSecondaryStorageCmd.execute();
+
+		Mockito.verify(responseGenerator).createHostResponse(host);
+		
+		HostResponse actualResponse = (HostResponse)addSecondaryStorageCmd.getResponseObject();
+		
+		Assert.assertEquals(responseHost, actualResponse);
+		Assert.assertEquals("addsecondarystorageresponse", actualResponse.getResponseName());
+
+		
+	}
+	
+	@Test
+	public void testExecuteForEmptyResult() throws Exception {
+		
+		ResourceService resourceService = Mockito.mock(ResourceService.class);
+		addSecondaryStorageCmd._resourceService = resourceService;
+		
+		Host[] mockHosts = new Host[] {};
+		
+		Mockito.when(resourceService.discoverHosts(addSecondaryStorageCmd)).thenReturn(Arrays.asList(mockHosts));
+	
+		try {
+		   addSecondaryStorageCmd.execute();
+		} catch(ServerApiException exception) {
+			Assert.assertEquals("Failed to add secondary storage", exception.getDescription());
+		}
+		
+	}
+	
+	@Test
+	public void testExecuteForNullResult() throws Exception {
+
+		ResourceService resourceService = Mockito.mock(ResourceService.class);
+		addSecondaryStorageCmd._resourceService = resourceService;
+
+		Mockito.when(resourceService.discoverHosts(addSecondaryStorageCmd)).thenReturn(null);
+
+		try {
+			   addSecondaryStorageCmd.execute();
+			} catch(ServerApiException exception) {
+				Assert.assertEquals("Failed to add secondary storage", exception.getDescription());
+			}
+		
+		
+	}
+	
+}