package org.ovirt.engine.core.bll;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.when;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.ovirt.engine.core.bll.interfaces.BackendInternal;
import org.ovirt.engine.core.common.action.ImprotVmTemplateParameters;
import org.ovirt.engine.core.common.businessentities.DiskImage;
import org.ovirt.engine.core.common.businessentities.StorageDomainType;
import org.ovirt.engine.core.common.businessentities.VmTemplate;
import org.ovirt.engine.core.common.businessentities.storage_domain_dynamic;
import org.ovirt.engine.core.common.businessentities.storage_domain_static;
import org.ovirt.engine.core.common.businessentities.storage_domains;
import org.ovirt.engine.core.common.businessentities.storage_pool;
import org.ovirt.engine.core.common.queries.DiskImageList;
import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
import org.ovirt.engine.core.common.queries.VdcQueryType;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.NGuid;
import org.ovirt.engine.core.dao.BusinessEntitySnapshotDAO;
import org.ovirt.engine.core.dao.StorageDomainDAO;
import org.ovirt.engine.core.dao.StorageDomainStaticDAO;
import org.ovirt.engine.core.dao.VmTemplateDAO;
public class TestHelperImportVmTemplateCommand extends ImportVmTemplateCommand<ImprotVmTemplateParameters> {
private static final long serialVersionUID = 1L;
public TestHelperImportVmTemplateCommand(final ImprotVmTemplateParameters p) {
super(p);
}
@Override
public boolean IsDomainActive(final Guid g1, final NGuid g2) {
return true;
}
@Override
protected BusinessEntitySnapshotDAO getBusinessEntitySnapshotDAO() {
return null;
}
@Override
public StorageDomainDAO getStorageDomainDAO() {
final storage_domains destination = new storage_domains();
destination.setstorage_domain_type(StorageDomainType.Data);
final StorageDomainDAO d = mock(StorageDomainDAO.class);
when(d.getForStoragePool(any(Guid.class), any(Guid.class))).thenReturn(destination);
storage_domain_dynamic dy = new storage_domain_dynamic();
dy.setavailable_disk_size(10);
dy.setused_disk_size(0);
destination.setStorageDynamicData(dy);
return d;
}
@Override
protected StorageDomainStaticDAO getStorageDomainStaticDAO() {
StorageDomainStaticDAO d = mock(StorageDomainStaticDAO.class);
when(d.get(any(Guid.class))).thenReturn(new storage_domain_static());
return d;
}
@Override
public VmTemplateDAO getVmTemplateDAO() {
VmTemplateDAO d = mock(VmTemplateDAO.class);
return d;
}
@Override
public storage_pool getStoragePool() {
return new storage_pool();
}
@Override
public BackendInternal getBackend() {
BackendInternal backend = mock(BackendInternal.class);
when(backend.runInternalQuery(eq(VdcQueryType.GetTemplatesFromExportDomain), any(VdcQueryParametersBase.class))).thenReturn(createDiskImageQueryResult());
return backend;
}
@Override
protected storage_domains getSourceDomain() {
storage_domains source = new storage_domains();
source.setstorage_domain_type(StorageDomainType.ImportExport);
return source;
}
private VdcQueryReturnValue createDiskImageQueryResult() {
final VdcQueryReturnValue v = new VdcQueryReturnValue();
Map<VmTemplate, DiskImageList> m = new HashMap<VmTemplate, DiskImageList>();
VmTemplate t = new VmTemplate();
DiskImage i = new DiskImage();
i.setactual_size(2);
ArrayList<DiskImage> ial = new ArrayList<DiskImage>();
ial.add(i);
DiskImageList il = new DiskImageList(ial);
m.put(t, il);
v.setReturnValue(m);
v.setSucceeded(true);
return v;
}
}