package org.ovirt.engine.core.bll; import static org.mockito.Matchers.any; import static org.mockito.Mockito.spy; import static org.powermock.api.mockito.PowerMockito.mockStatic; import static org.powermock.api.mockito.PowerMockito.when; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.ovirt.engine.core.common.action.FenceVdsActionParameters; import org.ovirt.engine.core.common.businessentities.FenceActionType; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.VdsDAO; import org.ovirt.engine.core.dao.VmDAO; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @RunWith(PowerMockRunner.class) @PrepareForTest({ DbFacade.class, StopVdsCommand.class }) public class FenceVdsBaseCommandTest { @Mock DbFacade dbFacade; @Mock VmDAO vmDAO; @Mock VdsDAO vdsDAO; public FenceVdsBaseCommandTest() { mockStatic(DbFacade.class); MockitoAnnotations.initMocks(this); } @Before public void mockDbFacadeAndDAO() { List<VM> list = new ArrayList<VM>(); when(DbFacade.getInstance()).thenReturn(dbFacade); when(dbFacade.getVmDAO()).thenReturn(vmDAO); when(dbFacade.getVdsDAO()).thenReturn(vdsDAO); when(vmDAO.getAllRunningForVds(any(Guid.class))).thenReturn(list); when(vdsDAO.get(any(Guid.class))).thenReturn(null); MockitoAnnotations.initMocks(this); } @Test public void canDoActionStopCommandFailWithInvalidHostTest() { StopVdsCommand<FenceVdsActionParameters> command = spy(new StopVdsCommand<FenceVdsActionParameters>(createParameters())); CanDoActionTestUtils.runAndAssertCanDoActionFailure(command, VdcBllMessages.ACTION_TYPE_FAILED_HOST_NOT_EXIST); } @Test public void canDoActionStartCommandFailWithInvalidHostTest() { StartVdsCommand<FenceVdsActionParameters> command = spy(new StartVdsCommand<FenceVdsActionParameters>(createParameters())); CanDoActionTestUtils.runAndAssertCanDoActionFailure(command, VdcBllMessages.ACTION_TYPE_FAILED_HOST_NOT_EXIST); } protected FenceVdsActionParameters createParameters() { final FenceVdsActionParameters p = new FenceVdsActionParameters(Guid.NewGuid(), FenceActionType.Stop); return p; } }