package org.ovirt.engine.api.restapi.resource; import java.util.List; import java.util.ArrayList; import org.junit.Ignore; import org.junit.Test; import org.ovirt.engine.api.model.CdRom; import org.ovirt.engine.api.model.CdRoms; import org.ovirt.engine.api.model.File; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmStatic; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; import static org.easymock.classextension.EasyMock.expect; @Ignore public class AbstractBackendCdRomsResourceTest<T extends AbstractBackendReadOnlyDevicesResource<CdRom, CdRoms, VM>> extends AbstractBackendCollectionResourceTest<CdRom, VM, T> { protected final static Guid PARENT_ID = GUIDS[1]; protected final static String ISO_PATH = "Fedora-13-x86_64-Live.iso"; protected VdcQueryType queryType; protected VdcQueryParametersBase queryParams; protected String queryIdName; public AbstractBackendCdRomsResourceTest(T collection, VdcQueryType queryType, VdcQueryParametersBase queryParams, String queryIdName) { super(collection, null, ""); this.queryType = queryType; this.queryParams = queryParams; this.queryIdName = queryIdName; } @Test @Ignore public void testQuery() throws Exception { // skip test inherited from base class as searching // over CdRoms is unsupported by the backend } protected void setUpQueryExpectations(String query) throws Exception { setUpEntityQueryExpectations(1); control.replay(); } protected void setUpQueryExpectations(String query, Object failure) throws Exception { setUpEntityQueryExpectations(1, failure); control.replay(); } protected void setUpEntityQueryExpectations(int times) throws Exception { setUpEntityQueryExpectations(times, null); } protected void setUpEntityQueryExpectations(int times, Object failure) throws Exception { while (times-- > 0) { setUpEntityQueryExpectations(queryType, queryParams.getClass(), new String[] { queryIdName }, new Object[] { PARENT_ID }, getEntityList(), failure); } } protected List<VM> getEntityList() { List<VM> entities = new ArrayList<VM>(); for (int i = 0; i < NAMES.length; i++) { entities.add(getEntity(i)); } return entities; } protected VM getEntity(int index) { return setUpEntityExpectations(control.createMock(VM.class), control.createMock(VmStatic.class), index); } static VM setUpEntityExpectations(VM entity, VmStatic staticVm, int index) { return setUpEntityExpectations(entity, staticVm, null, index); } static VM setUpEntityExpectations(VM entity, VmStatic staticVm, VMStatus status, int index) { expect(entity.getQueryableId()).andReturn(PARENT_ID).anyTimes(); expect(entity.getStaticData()).andReturn(staticVm).anyTimes(); expect(staticVm.getiso_path()).andReturn(ISO_PATH).anyTimes(); if (status != null) { expect(entity.getstatus()).andReturn(status).anyTimes(); } return entity; } protected List<CdRom> getCollection() { return collection.list().getCdRoms(); } static CdRom getModel(int index) { CdRom model = new CdRom(); model.setFile(new File()); model.getFile().setId(ISO_PATH); return model; } protected void verifyModel(CdRom model, int index) { verifyModelSpecific(model, index); verifyLinks(model); } static void verifyModelSpecific(CdRom model, int index) { assertEquals(Guid.Empty.toString(), model.getId()); assertTrue(model.isSetVm()); assertEquals(PARENT_ID.toString(), model.getVm().getId()); assertTrue(model.isSetFile()); assertEquals(ISO_PATH, model.getFile().getId()); } }