package org.ovirt.engine.api.restapi.resource;
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.DataCenter;
import org.ovirt.engine.api.model.Permission;
import org.ovirt.engine.api.model.Role;
import org.ovirt.engine.api.model.Group;
import org.ovirt.engine.core.common.VdcObjectType;
import org.ovirt.engine.core.common.businessentities.permissions;
import org.ovirt.engine.core.common.interfaces.SearchType;
import org.ovirt.engine.core.common.queries.MultilevelAdministrationByAdElementIdParameters;
import org.ovirt.engine.core.common.queries.SearchParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendGroupAssignedPermissionsResourceTest
extends AbstractBackendAssignedPermissionsResourceTest {
public BackendGroupAssignedPermissionsResourceTest() {
super(GUIDS[1],
VdcQueryType.GetPermissionsByAdElementId,
new MultilevelAdministrationByAdElementIdParameters(GUIDS[1]),
Group.class,
"AdGroup.id",
"AdElementId");
}
@Test
public void testAddIncompletePermission() throws Exception {
Permission model = new Permission();
model.setGroup(new Group());
model.getGroup().setId(GUIDS[1].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",
"dataCenter|cluster|host|storageDomain|vm|vmpool|template.id");
}
}
@Override
protected Permission getModel() {
Permission model = new Permission();
model.setDataCenter(new DataCenter());
model.getDataCenter().setId(GUIDS[2].toString());
model.setRole(new Role());
model.getRole().setId(GUIDS[3].toString());
return model;
}
@Override
protected List<permissions> setUpPermissions() {
List<permissions> perms = super.setUpPermissions();
perms.add(getEntity(perms.size() - 1));
perms.get(perms.size() - 1).setObjectType(VdcObjectType.System);
return perms;
}
@Override
protected void verifyModel(Permission model, int index) {
super.verifyModel(model, index);
assertTrue(model.isSetGroup());
assertEquals(GUIDS[1].toString(), model.getGroup().getId());
}
@Override
@Test
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());
}
}