Repository: cloudstack Updated Branches: refs/heads/master 22f194b88 -> 6c3c9ea91
Unit tests for HA manager investigate method. Refer to CLOUDSTACK-8666 for the code chenges Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6c3c9ea9 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6c3c9ea9 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6c3c9ea9 Branch: refs/heads/master Commit: 6c3c9ea915b486722c6d41491338531254335272 Parents: 22f194b Author: Koushik Das <[email protected]> Authored: Mon Jul 27 16:14:19 2015 +0530 Committer: Koushik Das <[email protected]> Committed: Tue Jul 28 11:22:32 2015 +0530 ---------------------------------------------------------------------- .../ha/HighAvailabilityManagerImplTest.java | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6c3c9ea9/server/test/com/cloud/ha/HighAvailabilityManagerImplTest.java ---------------------------------------------------------------------- diff --git a/server/test/com/cloud/ha/HighAvailabilityManagerImplTest.java b/server/test/com/cloud/ha/HighAvailabilityManagerImplTest.java index e7bb8a5..75a4313 100644 --- a/server/test/com/cloud/ha/HighAvailabilityManagerImplTest.java +++ b/server/test/com/cloud/ha/HighAvailabilityManagerImplTest.java @@ -16,8 +16,13 @@ // under the License. package com.cloud.ha; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import javax.inject.Inject; @@ -41,6 +46,7 @@ import com.cloud.dc.dao.HostPodDao; import com.cloud.ha.dao.HighAvailabilityDao; import com.cloud.host.Host; import com.cloud.host.HostVO; +import com.cloud.host.Status; import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.resource.ResourceManager; @@ -127,4 +133,31 @@ public class HighAvailabilityManagerImplTest { Mockito.when(_dcDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); highAvailabilityManager.scheduleRestartForVmsOnHost(hostVO, true); } + + @Test + public void investigateHostStatusSuccess() { + Mockito.when(_hostDao.findById(Mockito.anyLong())).thenReturn(hostVO); + // Set the list of investigators, CheckOnAgentInvestigator suffices for now + Investigator investigator = Mockito.mock(CheckOnAgentInvestigator.class); + List<Investigator> investigators = new ArrayList<Investigator>(); + investigators.add(investigator); + highAvailabilityManager.setInvestigators(investigators); + // Mock isAgentAlive to return host status as Down + Mockito.when(investigator.isAgentAlive(hostVO)).thenReturn(Status.Down); + + assertTrue(highAvailabilityManager.investigate(1l) == Status.Down); + } + + @Test + public void investigateHostStatusFailure() { + Mockito.when(_hostDao.findById(Mockito.anyLong())).thenReturn(hostVO); + // Set the list of investigators, CheckOnAgentInvestigator suffices for now + // Also no need to mock isAgentAlive() as actual implementation returns null + Investigator investigator = Mockito.mock(CheckOnAgentInvestigator.class); + List<Investigator> investigators = new ArrayList<Investigator>(); + investigators.add(investigator); + highAvailabilityManager.setInvestigators(investigators); + + assertNull(highAvailabilityManager.investigate(1l)); + } }
