package org.ovirt.engine.api.restapi.resource; import static org.mockito.Mockito.when; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.UriInfo; import org.junit.Test; import org.ovirt.engine.api.model.Creation; import org.ovirt.engine.api.model.CreationStatus; import org.ovirt.engine.core.common.businessentities.AsyncTaskResultEnum; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; import org.ovirt.engine.core.common.queries.GetTasksStatusesByTasksIDsParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendCreationResourceTest extends AbstractBackendSubResourceTest<Creation, List/*<AsyncTaskStatus>*/, BackendCreationResource> { private static String CREATION_ID = GUIDS[0].toString() + "," + GUIDS[1].toString(); public BackendCreationResourceTest() { super(new BackendCreationResource(CREATION_ID)); } @Test public void testBadGuid() throws Exception { try { new BackendCreationResource("foo"); fail("expected WebApplicationException"); } catch (WebApplicationException wae) { verifyNotFoundException(wae); } } @Test public void testGet() throws Exception { setUriInfo(setUpUriInfoExpectations()); setUpGetEntityExpectations(); verifyModel(resource.get()); } protected UriInfo setUpUriInfoExpectations() { UriInfo uriInfo = setUpBasicUriExpectations(); when(uriInfo.getPath()).thenReturn(""); return uriInfo; } protected void setUpGetEntityExpectations() throws Exception { setUpGetEntityExpectations(VdcQueryType.GetTasksStatusesByTasksIDs, GetTasksStatusesByTasksIDsParameters.class, new String[] {}, new Object[] {}, getTaskStatuses()); } @Override protected List<AsyncTaskStatus> getEntity(int index) { return getTaskStatuses(); } protected List<AsyncTaskStatus> getTaskStatuses() { List<AsyncTaskStatus> ret = new ArrayList<>(); ret.add(getTaskStatus()); ret.add(getTaskStatus()); return ret; } protected AsyncTaskStatus getTaskStatus() { AsyncTaskStatus status = new AsyncTaskStatus(); status.setStatus(AsyncTaskStatusEnum.finished); status.setResult(AsyncTaskResultEnum.success); return status; } protected void verifyModel(Creation model) throws Exception { assertNotNull(model); assertEquals(URLEncoder.encode(CREATION_ID, "UTF-8"), model.getId()); assertEquals(CreationStatus.COMPLETE.value(), model.getStatus()); verifyLinks(model); } }