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/20 18:52:42 UTC

git commit: Adding a bunch of agent/api command tests Signed-off-by: Chip Childers

Updated Branches:
  refs/heads/master b1af51071 -> 6d200c502


Adding a bunch of agent/api command tests
Signed-off-by: Chip Childers <ch...@gmail.com>


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

Branch: refs/heads/master
Commit: 6d200c5021171a0f5e7452e1c7d00ee21b2c2351
Parents: b1af510
Author: Yichi Lu <yi...@sungard.com>
Authored: Tue Nov 20 12:41:42 2012 -0500
Committer: Chip Childers <ch...@gmail.com>
Committed: Tue Nov 20 12:41:42 2012 -0500

----------------------------------------------------------------------
 .../cloud/agent/api/AgentControlAnswerTest.java    |   32 ++
 .../cloud/agent/api/AgentControlCommandTest.java   |   31 ++
 api/test/com/cloud/agent/api/AnswerTest.java       |   67 +++
 .../com/cloud/agent/api/AttachIsoCommandTest.java  |   77 +++
 .../cloud/agent/api/AttachVolumeAnswerTest.java    |   59 +++
 .../cloud/agent/api/AttachVolumeCommandTest.java   |  116 +++++
 .../cloud/agent/api/BackupSnapshotAnswerTest.java  |   56 +++
 .../cloud/agent/api/BackupSnapshotCommandTest.java |  220 +++++++++
 .../cloud/agent/api/BumpUpPriorityCommandTest.java |   73 +++
 .../com/cloud/agent/api/CancelCommandTest.java     |   43 ++
 .../com/cloud/agent/api/ChangeAgentAnswerTest.java |   39 ++
 .../cloud/agent/api/ChangeAgentCommandTest.java    |   44 ++
 .../com/cloud/agent/api/CheckHealthAnswerTest.java |   45 ++
 .../cloud/agent/api/CheckHealthCommandTest.java    |   37 ++
 .../cloud/agent/api/CheckNetworkAnswerTest.java    |   51 ++
 .../cloud/agent/api/CheckNetworkCommandTest.java   |   39 ++
 .../cloud/agent/api/CheckOnHostCommandTest.java    |  366 +++++++++++++++
 .../com/cloud/agent/api/SnapshotCommandTest.java   |   98 ++++
 18 files changed, 1493 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/6d200c50/api/test/com/cloud/agent/api/AgentControlAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/AgentControlAnswerTest.java b/api/test/com/cloud/agent/api/AgentControlAnswerTest.java
new file mode 100644
index 0000000..7bfd776
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/AgentControlCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/AgentControlCommandTest.java b/api/test/com/cloud/agent/api/AgentControlCommandTest.java
new file mode 100644
index 0000000..12ea0d6
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/AnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/AnswerTest.java b/api/test/com/cloud/agent/api/AnswerTest.java
new file mode 100644
index 0000000..c53c84a
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/AttachIsoCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/AttachIsoCommandTest.java b/api/test/com/cloud/agent/api/AttachIsoCommandTest.java
new file mode 100644
index 0000000..42df9db
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/AttachVolumeAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/AttachVolumeAnswerTest.java b/api/test/com/cloud/agent/api/AttachVolumeAnswerTest.java
new file mode 100644
index 0000000..886995e
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/AttachVolumeCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/AttachVolumeCommandTest.java b/api/test/com/cloud/agent/api/AttachVolumeCommandTest.java
new file mode 100644
index 0000000..24e1a51
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/BackupSnapshotAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/BackupSnapshotAnswerTest.java b/api/test/com/cloud/agent/api/BackupSnapshotAnswerTest.java
new file mode 100644
index 0000000..6c6929f
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/BackupSnapshotCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/BackupSnapshotCommandTest.java b/api/test/com/cloud/agent/api/BackupSnapshotCommandTest.java
new file mode 100644
index 0000000..28e8c0a
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/BumpUpPriorityCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/BumpUpPriorityCommandTest.java b/api/test/com/cloud/agent/api/BumpUpPriorityCommandTest.java
new file mode 100644
index 0000000..f111ced
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/CancelCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/CancelCommandTest.java b/api/test/com/cloud/agent/api/CancelCommandTest.java
new file mode 100644
index 0000000..9ea8452
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/ChangeAgentAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/ChangeAgentAnswerTest.java b/api/test/com/cloud/agent/api/ChangeAgentAnswerTest.java
new file mode 100644
index 0000000..f915e19
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/ChangeAgentCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/ChangeAgentCommandTest.java b/api/test/com/cloud/agent/api/ChangeAgentCommandTest.java
new file mode 100644
index 0000000..43b68b1
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/CheckHealthAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/CheckHealthAnswerTest.java b/api/test/com/cloud/agent/api/CheckHealthAnswerTest.java
new file mode 100644
index 0000000..30f817b
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/CheckHealthCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/CheckHealthCommandTest.java b/api/test/com/cloud/agent/api/CheckHealthCommandTest.java
new file mode 100644
index 0000000..428ec92
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/CheckNetworkAnswerTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/CheckNetworkAnswerTest.java b/api/test/com/cloud/agent/api/CheckNetworkAnswerTest.java
new file mode 100644
index 0000000..6484214
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/CheckNetworkCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/CheckNetworkCommandTest.java b/api/test/com/cloud/agent/api/CheckNetworkCommandTest.java
new file mode 100644
index 0000000..f25874c
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/CheckOnHostCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/CheckOnHostCommandTest.java b/api/test/com/cloud/agent/api/CheckOnHostCommandTest.java
new file mode 100644
index 0000000..1fae802
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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/6d200c50/api/test/com/cloud/agent/api/SnapshotCommandTest.java
----------------------------------------------------------------------
diff --git a/api/test/com/cloud/agent/api/SnapshotCommandTest.java b/api/test/com/cloud/agent/api/SnapshotCommandTest.java
new file mode 100644
index 0000000..5bb412e
--- /dev/null
+++ b/api/test/com/cloud/agent/api/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 com.cloud.agent.api;
+
+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);
+	}
+}