package org.ovirt.engine.api.restapi.resource; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.junit.Test; import org.ovirt.engine.api.model.DataCenter; import org.ovirt.engine.api.model.Group; import org.ovirt.engine.api.model.Permission; import org.ovirt.engine.api.model.Role; import org.ovirt.engine.api.model.User; import org.ovirt.engine.core.common.action.PermissionsOperationsParametes; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters; import org.ovirt.engine.core.common.queries.MultilevelAdministrationByPermissionIdParameters; import org.ovirt.engine.core.common.queries.SearchParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendEntityAssignedPermissionsResourceTest extends AbstractBackendAssignedPermissionsResourceTest { public BackendEntityAssignedPermissionsResourceTest() { super(GUIDS[2], VdcQueryType.GetPermissionsForObject, new GetPermissionsForObjectParameters(GUIDS[1]), DataCenter.class, "VdcUser.UserId", "ObjectId"); } @Test public void testAddIncompletePermission() throws Exception { Permission model = new Permission(); model.setDataCenter(new DataCenter()); model.getDataCenter().setId(GUIDS[2].toString()); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); setUriInfo(setUpBasicUriExpectations()); control.replay(); try { collection.add(model); } catch (WebApplicationException wae) { verifyIncompleteException(wae, "Permission", "add", "user|group.id"); } } @Test public void testAddGroupPermission() throws Exception { setUriInfo(setUpBasicUriExpectations()); setUpCreationExpectations(VdcActionType.AddPermission, PermissionsOperationsParametes.class, new String[] { "AdGroup.id", "Permission.ad_element_id", "Permission.ObjectId", "Permission.role_id" }, new Object[] { GUIDS[1], GUIDS[1], GUIDS[2], GUIDS[3] }, true, true, GUIDS[0], VdcQueryType.GetPermissionById, MultilevelAdministrationByPermissionIdParameters.class, new String[] { "PermissionId" }, new Object[] { GUIDS[0] }, getEntity(0)); Permission model = new Permission(); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); model.setGroup(new Group()); model.getGroup().setId(GUIDS[1].toString()); Response response = collection.add(model); assertEquals(201, response.getStatus()); assertTrue(response.getEntity() instanceof Permission); verifyModel((Permission) response.getEntity(), 0); } @Test @Override public void testList() throws Exception { UriInfo uriInfo = setUpUriExpectations(null); setUpGetEntityExpectations(VdcQueryType.Search, SearchParameters.class, new String[] {"SearchPattern", "SearchTypeValue"}, new Object[] {"users:", SearchType.DBUser}, getUsers()); setUpQueryExpectations(""); collection.setUriInfo(uriInfo); verifyCollection(getCollection()); } @Override protected Permission getModel() { Permission model = new Permission(); model.setUser(new User()); model.getUser().setId(GUIDS[1].toString()); model.setRole(new Role()); model.getRole().setId(GUIDS[3].toString()); return model; } @Override protected void verifyModel(Permission model, int index) { super.verifyModel(model, index); assertTrue(model.isSetUser()); assertEquals(GUIDS[1].toString(), model.getUser().getId()); } }