package org.ovirt.engine.core.bll.snapshots; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.MockitoJUnitRunner; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.storage.Disk; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; import org.ovirt.engine.core.common.businessentities.storage.ImageStatus; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.DiskImageDao; @RunWith(MockitoJUnitRunner.class) public class SnapshotVmConfigurationHelperTest { @Mock private DiskImageDao diskImageDaoMock; private Guid existingSnapshotId = Guid.newGuid(); private Guid existingVmId = Guid.newGuid(); private Guid existingImageId = Guid.newGuid(); private Guid existingImageGroupId = Guid.newGuid(); private Snapshot existingSnapshot; private VM existingVm = null; private DiskImage existingDiskImage; @InjectMocks @Spy private SnapshotVmConfigurationHelper snapshotVmConfigurationHelper; private static final String EXISTING_VM_NAME = "Dummy configuration"; @Before public void setUp() throws Exception { existingSnapshot = createSnapshot(existingSnapshotId); existingVm = createVm(existingVmId); existingSnapshot.setVmConfiguration(EXISTING_VM_NAME); // Dummy configuration existingDiskImage = createDiskImage(existingImageId, existingImageGroupId); } private VM createVm(Guid existingVmId) { VM vm = new VM(); vm.setId(existingVmId); return vm; } private Snapshot createSnapshot(Guid existingSnapshotId) { Snapshot snapshot = new Snapshot(); snapshot.setId(existingSnapshotId); snapshot.setVmId(existingVmId); snapshot.setVmConfiguration(EXISTING_VM_NAME); return snapshot; } private DiskImage createDiskImage(Guid diskImageId, Guid imageGroupId) { DiskImage diskImage = new DiskImage(); diskImage.setImageId(diskImageId); diskImage.setId(imageGroupId); return diskImage; } @Test public void testIllegalImageReturnedByQuery() throws Exception { existingVm.getDiskMap().put(existingDiskImage.getId(), existingDiskImage); existingVm.getImages().add(existingDiskImage); snapshotVmConfigurationHelper.markImagesIllegalIfNotInDb(existingVm, existingSnapshotId); for (Disk diskImage : existingVm.getDiskMap().values()) { assertEquals(ImageStatus.ILLEGAL, ((DiskImage)diskImage).getImageStatus()); } } }