package org.ovirt.engine.core.bll; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.Collections; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.ovirt.engine.core.common.action.RngDeviceParameters; import org.ovirt.engine.core.common.businessentities.Cluster; import org.ovirt.engine.core.common.businessentities.VmDevice; import org.ovirt.engine.core.common.businessentities.VmDeviceGeneralType; import org.ovirt.engine.core.common.businessentities.VmRngDevice; import org.ovirt.engine.core.common.businessentities.VmStatic; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.ClusterDao; import org.ovirt.engine.core.dao.VmDeviceDao; import org.ovirt.engine.core.dao.VmStaticDao; public class UpdateRngDeviceTest extends BaseCommandTest { private static final Guid vmId = new Guid("a09f57b1-5739-4352-bf88-a6f834ed46db"); private static final Guid clusterId = new Guid("e862dae0-5c41-416a-922c-5395e7245c9b"); private static final Guid deviceId = new Guid("b24ae590-f42b-49b6-b8f4-cbbc720b230d"); @Mock private VmStaticDao vmDaoMock; @Mock private VmDeviceDao vmDeviceDaoMock; @Mock private ClusterDao clusterMock; @InjectMocks private UpdateRngDeviceCommand cmd = new UpdateRngDeviceCommand(new RngDeviceParameters(getDevice(deviceId, vmId), true), null); @Test public void testValidate() { UpdateRngDeviceCommand command = mockCommand(); assertTrue(command.validate()); } private UpdateRngDeviceCommand mockCommand() { final VmStatic vmMock = mock(VmStatic.class); when(vmMock.getClusterId()).thenReturn(clusterId); when(vmDaoMock.get(vmId)).thenReturn(vmMock); when(vmDeviceDaoMock.getVmDeviceByVmIdAndType(vmId, VmDeviceGeneralType.RNG)).thenReturn(Collections.singletonList(new VmDevice())); final Cluster cluster = mock(Cluster.class); when(cluster.getRequiredRngSources()).thenReturn(Collections.singleton(VmRngDevice.Source.RANDOM)); when(clusterMock.get(clusterId)).thenReturn(cluster); cmd.init(); return cmd; } private static VmRngDevice getDevice(Guid deviceId, Guid vmId) { VmRngDevice device = new VmRngDevice(); device.setVmId(vmId); device.setDeviceId(deviceId); device.setBytes(12); device.setPeriod(34); device.setSource(VmRngDevice.Source.RANDOM); return device; } }