package org.ovirt.engine.api.restapi.resource;
import javax.ws.rs.WebApplicationException;
import org.junit.Assert;
import org.junit.Test;
import org.ovirt.engine.api.model.Permit;
import org.ovirt.engine.api.model.PermitType;
import org.ovirt.engine.core.common.businessentities.ActionGroup;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.api.restapi.types.MappingLocator;
import org.ovirt.engine.api.restapi.types.PermitMapper;
public class BackendPermitResourceTest extends Assert {
private static final Guid ROLE_ID = new Guid("11111111-1111-1111-1111-111111111111");
private MappingLocator mapperLocator;
public BackendPermitResourceTest() {
mapperLocator = new MappingLocator();
mapperLocator.populate();
}
@Test
public void testGetBadId() throws Exception {
doTestGetNotFound("foo");
}
@Test
public void testGetNotFound() throws Exception {
doTestGetNotFound("11111");
}
private void doTestGetNotFound(String id) throws Exception {
BackendPermitResource resource = new BackendPermitResource(id, new BackendPermitsResource(ROLE_ID));
resource.getParent().setMappingLocator(mapperLocator);
try {
resource.get();
fail("expected WebApplicationException");
} catch (WebApplicationException wae) {
assertEquals(404, wae.getResponse().getStatus());
}
}
@Test
public void testGet() {
for (ActionGroup action : ActionGroup.values()) {
BackendPermitResource resource =
new BackendPermitResource(Integer.toString(action.getId()), new BackendPermitsResource(ROLE_ID));
resource.setMappingLocator(mapperLocator);
resource.getParent().setMappingLocator(mapperLocator);
verifyPermit(resource.get(), action);
}
}
private void verifyPermit(Permit permit, ActionGroup action) {
assertEquals(Integer.toString(action.getId()), permit.getId());
PermitType permitType = PermitMapper.map(action, (PermitType)null);
assertEquals(permitType.value(), permit.getName());
assertNotNull(permit.getRole());
assertEquals(ROLE_ID.toString(), permit.getRole().getId());
}
}