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.core.common.action.AddExternalJobParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendJobsResourceTest extends AbstractBackendCollectionResourceTest<Job, org.ovirt.engine.core.common.job.Job, BackendJobsResource> { public BackendJobsResourceTest() { super(new BackendJobsResource(), null, ""); } @Override protected List<Job> getCollection() { return collection.list().getJobs(); } @Test @Ignore @Override public void testQuery() throws Exception { } @Override protected void setUpQueryExpectations(String query, Object failure) throws Exception { assertEquals("", query); setUpEntityQueryExpectations(VdcQueryType.GetAllJobs, VdcQueryParametersBase.class, new String[] { }, new Object[] { }, setUpJobs(), failure); } @Override protected org.ovirt.engine.core.common.job.Job getEntity(int index) { org.ovirt.engine.core.common.job.Job job = new org.ovirt.engine.core.common.job.Job(); job.setId(GUIDS[index]); job.setDescription(DESCRIPTIONS[index]); job.setActionType(VdcActionType.AddExternalJob); job.setStartTime(new Date()); job.setExternal(true); job.setAutoCleared(true); return job; } @Override protected void verifyModel(Job model, int index) { assertEquals(GUIDS[index].toString(), model.getId()); assertEquals(DESCRIPTIONS[index], model.getDescription()); assertTrue(model.isExternal()); verifyLinks(model); } @Test public void testAddJob() throws Exception { setUriInfo(setUpBasicUriExpectations()); setUpCreationExpectations(VdcActionType.AddExternalJob, AddExternalJobParameters.class, new String[] { "Description"}, new Object[] { DESCRIPTIONS[0] }, true, true, GUIDS[0], VdcQueryType.GetJobByJobId, IdQueryParameters.class, new String[] { "Id" }, new Object[] { GUIDS[0] }, getEntity(0)); Job model = new Job(); model.setDescription(DESCRIPTIONS[0]); Response response = collection.add(model); assertEquals(201, response.getStatus()); assertTrue(response.getEntity() instanceof Job); verifyModel((Job) response.getEntity(), 0); } protected List<org.ovirt.engine.core.common.job.Job> setUpJobs() { List<org.ovirt.engine.core.common.job.Job> jobs = new ArrayList<>(); for (int i = 0; i < NAMES.length; i++) { jobs.add(getEntity(i)); } return jobs; } }