package org.ovirt.engine.api.restapi.resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.ws.rs.core.Response; import org.junit.Ignore; import org.junit.Test; import org.ovirt.engine.api.model.Job; import org.ovirt.engine.api.model.Step; import org.ovirt.engine.api.model.StepEnum; import org.ovirt.engine.api.model.StepStatus; import org.ovirt.engine.core.common.action.AddExternalStepParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.GetStepsWithSubjectEntitiesByJobIdQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendStepsResourceTest extends AbstractBackendCollectionResourceTest<Step, org.ovirt.engine.core.common.job.Step, BackendStepsResource> { public BackendStepsResourceTest() { super(new BackendStepsResource(GUIDS[1]), null, ""); } @Override protected List<Step> getCollection() { return collection.list().getSteps(); } @Test @Ignore @Override public void testQuery() throws Exception { } @Override protected void setUpQueryExpectations(String query, Object failure) throws Exception { assertEquals("", query); setUpEntityQueryExpectations(VdcQueryType.GetStepsWithSubjectEntitiesByJobId, GetStepsWithSubjectEntitiesByJobIdQueryParameters.class, new String[] {"JobId" }, new Object[] {GUIDS[1] }, setUpSteps(), failure); } @Override protected org.ovirt.engine.core.common.job.Step getEntity(int index) { int jobIndex = index == 0 ? 1 : index -1; org.ovirt.engine.core.common.job.Step step = new org.ovirt.engine.core.common.job.Step(); step.setId(GUIDS[index]); step.setJobId(GUIDS[jobIndex]); step.setDescription(DESCRIPTIONS[index]); step.setStepType(org.ovirt.engine.core.common.job.StepEnum.EXECUTING); step.setStartTime(new Date()); step.setExternal(true); return step; } @Override protected void verifyModel(Step model, int index) { assertEquals(GUIDS[index].toString(), model.getId()); assertEquals(DESCRIPTIONS[index], model.getDescription()); assertTrue(model.isExternal()); verifyLinks(model); } protected List<org.ovirt.engine.core.common.job.Step> setUpSteps() { List<org.ovirt.engine.core.common.job.Step> steps = new ArrayList<>(); for (int i = 0; i < NAMES.length; i++) { steps.add(getEntity(i)); } return steps; } @Test public void testAddStep() throws Exception { setUriInfo(setUpBasicUriExpectations()); setUpCreationExpectations(VdcActionType.AddExternalStep, AddExternalStepParameters.class, new String[] { "Description", "ParentId"}, new Object[] { DESCRIPTIONS[0], GUIDS[1] }, true, true, GUIDS[0], VdcQueryType.GetStepWithSubjectEntitiesByStepId, IdQueryParameters.class, new String[] { "Id" }, new Object[] { GUIDS[0] }, getEntity(0)); Step model = new Step(); Job job = new Job(); job.setId(GUIDS[1].toString()); job.setDescription(DESCRIPTIONS[1]); model.setJob(job); model.setDescription(DESCRIPTIONS[0]); model.setStatus(StepStatus.STARTED); model.setType(StepEnum.EXECUTING); Response response = collection.add(model); assertEquals(201, response.getStatus()); assertTrue(response.getEntity() instanceof Step); verifyModel((Step) response.getEntity(), 0); } }