package org.ovirt.engine.core.common; import static org.junit.Assert.assertEquals; import java.util.Collections; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.BusinessEntityWithStatus; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; /** * A test case for the {@link VdcActionUtils} class. */ @RunWith(Parameterized.class) public class VdcActionUtilsTest { @Parameterized.Parameters public static Object[][] data() { VM upVm = new VM(); upVm.setStatus(VMStatus.Up); VM downVm = new VM(); downVm.setStatus(VMStatus.Down); VDS upVds = new VDS(); upVds.setStatus(VDSStatus.Up); VDS downVds = new VDS(); downVds.setStatus(VDSStatus.Down); StorageDomain upStorageDomain = new StorageDomain(); upStorageDomain.setStatus(StorageDomainStatus.Active); return new Object[][] { { upVm, VdcActionType.MigrateVm, true }, { downVm, VdcActionType.MigrateVm, false }, { upVds, VdcActionType.RefreshHostCapabilities, true }, { downVds, VdcActionType.RefreshHostCapabilities, false }, { upStorageDomain, VdcActionType.DeactivateStorageDomainWithOvfUpdate, true }, { new StoragePool(), VdcActionType.UpdateStoragePool, true } }; } /** The object to test. */ @Parameterized.Parameter(0) public BusinessEntityWithStatus<?, ?> toTest; /** The action to test */ @Parameterized.Parameter(1) public VdcActionType action; /** The expected result. */ @Parameterized.Parameter(2) public boolean result; @Test public void canExecute() { assertEquals(result, VdcActionUtils.canExecute(Collections.<BusinessEntityWithStatus<?, ?>> singletonList(toTest), toTest.getClass(), action)); } }