package org.ovirt.engine.core.bll.storage.disk.image;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Spy;
import org.ovirt.engine.core.bll.BaseCommandTest;
import org.ovirt.engine.core.common.action.StorageDomainParametersBase;
import org.ovirt.engine.core.common.businessentities.OvfEntityData;
import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.DiskImageDao;
import org.ovirt.engine.core.dao.UnregisteredOVFDataDao;
import org.ovirt.engine.core.utils.ovf.OvfReaderException;
public class ScanStorageForUnregisteredDisksCommandTest extends BaseCommandTest {
@Mock
private UnregisteredOVFDataDao unregisteredOVFDataDaoMock;
@Mock
private DiskImageDao diskImageDaoMock;
@Spy
@InjectMocks
private ScanStorageForUnregisteredDisksCommand<StorageDomainParametersBase> cmd =
new ScanStorageForUnregisteredDisksCommand<>
(new StorageDomainParametersBase(Guid.newGuid(), Guid.newGuid()), null);
private Guid storageId = Guid.newGuid();
private VdcQueryReturnValue generateQueryReturnValueForGetDiskImages() {
VdcQueryReturnValue vdcQueryReturnValue = new VdcQueryReturnValue();
vdcQueryReturnValue.setSucceeded(true);
return vdcQueryReturnValue;
}
@Test
public void testExecuteGetAllEntitiesCommand() throws OvfReaderException, IOException {
cmd.executeCommand();
assertTrue("return value should be true", cmd.getReturnValue().getSucceeded());
}
@Before
public void setUpCommandEntities() throws OvfReaderException {
VdcQueryReturnValue vdcRetVal = generateQueryReturnValueForGetDiskImages();
doReturn(vdcRetVal).when(cmd).getUnregisteredDisksFromHost();
List<OvfEntityData> allEntities = new ArrayList<>();
OvfEntityData ovf = new OvfEntityData();
ovf.setEntityId(Guid.newGuid());
ovf.setEntityName("Any Name");
allEntities.add(ovf);
when(unregisteredOVFDataDaoMock.getAllForStorageDomainByEntityType(storageId, null)).thenReturn(allEntities);
doNothing().when(cmd).setVmsForUnregisteredDisks(allEntities);
when(unregisteredOVFDataDaoMock.getAllForStorageDomainByEntityType(storageId, null)).thenReturn(allEntities);
doNothing().when(cmd).removeUnregisteredDisks();
doNothing().when(cmd).saveUnregisterDisk(any());
}
}