package org.ovirt.engine.core.vdsbroker.monitoring;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.spy;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Connecting;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Down;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Error;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Initializing;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.InstallFailed;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Installing;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.InstallingOS;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Kdumping;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Maintenance;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.NonOperational;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.NonResponsive;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.PendingApproval;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.PreparingForMaintenance;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Reboot;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Unassigned;
import static org.ovirt.engine.core.common.businessentities.VDSStatus.Up;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.mockito.Mock;
import org.ovirt.engine.core.common.businessentities.VDSStatus;
import org.ovirt.engine.core.utils.MockConfigRule;
import org.ovirt.engine.core.vdsbroker.VdsManager;
@RunWith(Parameterized.class)
public class PollVmStatsRefresherTest {
@Parameterized.Parameter(0)
public VDSStatus status;
@Parameterized.Parameter(1)
public boolean monitoringNeeded;
private PollVmStatsRefresher underTest;
@Mock
private VdsManager vdsManager;
@Rule
public final MockConfigRule mcr = new MockConfigRule();
@Parameterized.Parameters(name = "status {0} is monitoring needed - {1}")
public static Object[][] data() {
return new Object[][] {
// host status is monitoring needed
{ Up, true},
{ NonResponsive, true },
{ Error, true },
{ NonOperational, true },
{ PreparingForMaintenance, true },
{ Initializing, true },
{ Connecting, true },
{ Unassigned, false },
{ Down, false },
{ Maintenance, false },
{ Installing, false },
{ InstallFailed, false },
{ Reboot, false },
{ PendingApproval, false },
{ InstallingOS, false },
{ Kdumping, false },
};
}
@Before
public void setup() {
initMocks(this);
underTest = spy(new PollVmStatsRefresher(vdsManager));
}
@Test
public void testMonitoringNeededByStatus() {
assertEquals(underTest.isMonitoringNeeded(status), monitoringNeeded);
}
}