use of io.gravitee.repository.management.model.Role in project gravitee-management-rest-api by gravitee-io.
the class RoleService_UpdateTest method shouldUpdate.
@Test
public void shouldUpdate() throws TechnicalException {
UpdateRoleEntity updateRoleEntityMock = mock(UpdateRoleEntity.class);
when(updateRoleEntityMock.getName()).thenReturn("update mock role");
when(updateRoleEntityMock.getScope()).thenReturn(io.gravitee.management.model.permissions.RoleScope.PORTAL);
when(updateRoleEntityMock.getPermissions()).thenReturn(Collections.singletonMap(DOCUMENTATION.getName(), new char[] { RolePermissionAction.CREATE.getId() }));
Role roleMock = mock(Role.class);
when(roleMock.getName()).thenReturn("new mock role");
when(roleMock.getScope()).thenReturn(RoleScope.PORTAL);
when(roleMock.getPermissions()).thenReturn(new int[] { 1108 });
when(mockRoleRepository.update(any())).thenReturn(roleMock);
when(mockRoleRepository.findById(RoleScope.PORTAL, "update mock role")).thenReturn(Optional.of(roleMock));
RoleEntity entity = roleService.update(updateRoleEntityMock);
assertNotNull("no entoty created", entity);
assertEquals("invalid name", "new mock role", entity.getName());
assertEquals("invalid scope", io.gravitee.management.model.permissions.RoleScope.PORTAL, entity.getScope());
assertFalse("no permissions found", entity.getPermissions().isEmpty());
assertTrue("invalid Permission name", entity.getPermissions().containsKey(DOCUMENTATION.getName()));
char[] perms = entity.getPermissions().get(DOCUMENTATION.getName());
assertEquals("not enough permissions", 1, perms.length);
assertEquals("not the good permission", RolePermissionAction.CREATE.getId(), perms[0]);
}
use of io.gravitee.repository.management.model.Role in project gravitee-management-rest-api by gravitee-io.
the class RoleService_CreateOrUpdateSystemRolesTest method shouldUpdateSystemRole.
@Test
public void shouldUpdateSystemRole() throws TechnicalException {
Role mgmtAdminRole = mock(Role.class);
when(mgmtAdminRole.getPermissions()).thenReturn(new int[] { 20, 21 });
when(mockRoleRepository.findById(RoleScope.MANAGEMENT, "ADMIN")).thenReturn(of(mgmtAdminRole));
when(mockRoleRepository.findById(RoleScope.PORTAL, "ADMIN")).thenReturn(empty());
when(mockRoleRepository.findById(RoleScope.API, "PRIMARY_OWNER")).thenReturn(empty());
when(mockRoleRepository.findById(RoleScope.APPLICATION, "PRIMARY_OWNER")).thenReturn(empty());
roleService.createOrUpdateSystemRoles();
verify(mockRoleRepository, times(4)).findById(any(), anyString());
verify(mockRoleRepository, times(1)).update(argThat(new ArgumentMatcher<Role>() {
@Override
public boolean matches(Object o) {
return ((Role) o).getScope().equals(RoleScope.MANAGEMENT) && Arrays.stream(((Role) o).getPermissions()).reduce(Math::addExact).orElse(0) == Arrays.stream(mgmtAdminPermissions).reduce(Math::addExact).orElse(0);
}
}));
verify(mockRoleRepository, times(3)).create(argThat(new ArgumentMatcher<Role>() {
@Override
public boolean matches(Object o) {
return ((Role) o).getScope().equals(RoleScope.API) || ((Role) o).getScope().equals(RoleScope.APPLICATION) || ((Role) o).getScope().equals(RoleScope.PORTAL);
}
}));
}
use of io.gravitee.repository.management.model.Role in project gravitee-management-rest-api by gravitee-io.
the class RoleService_CreateOrUpdateSystemRolesTest method shouldDoNothing.
@Test
public void shouldDoNothing() throws TechnicalException {
Role mgmtAdminRole = mock(Role.class);
when(mgmtAdminRole.getPermissions()).thenReturn(mgmtAdminPermissions);
when(mockRoleRepository.findById(RoleScope.MANAGEMENT, "ADMIN")).thenReturn(of(mgmtAdminRole));
when(mockRoleRepository.findById(RoleScope.PORTAL, "ADMIN")).thenReturn(empty());
when(mockRoleRepository.findById(RoleScope.API, "PRIMARY_OWNER")).thenReturn(empty());
when(mockRoleRepository.findById(RoleScope.APPLICATION, "PRIMARY_OWNER")).thenReturn(empty());
roleService.createOrUpdateSystemRoles();
verify(mockRoleRepository, times(4)).findById(any(), anyString());
verify(mockRoleRepository, never()).update(any());
verify(mockRoleRepository, times(3)).create(argThat(new ArgumentMatcher<Role>() {
@Override
public boolean matches(Object o) {
return ((Role) o).getScope().equals(RoleScope.API) || ((Role) o).getScope().equals(RoleScope.APPLICATION) || ((Role) o).getScope().equals(RoleScope.PORTAL);
}
}));
}
use of io.gravitee.repository.management.model.Role in project gravitee-management-rest-api by gravitee-io.
the class RoleService_CreateTest method shouldCreate.
@Test
public void shouldCreate() throws TechnicalException {
NewRoleEntity newRoleEntityMock = mock(NewRoleEntity.class);
when(newRoleEntityMock.getName()).thenReturn("new mock role");
when(newRoleEntityMock.getScope()).thenReturn(io.gravitee.management.model.permissions.RoleScope.PORTAL);
when(newRoleEntityMock.getPermissions()).thenReturn(Collections.singletonMap(DOCUMENTATION.getName(), new char[] { RolePermissionAction.CREATE.getId() }));
Role roleMock = mock(Role.class);
when(roleMock.getName()).thenReturn("new mock role");
when(roleMock.getScope()).thenReturn(RoleScope.PORTAL);
when(roleMock.getPermissions()).thenReturn(new int[] { 1108 });
when(mockRoleRepository.create(any())).thenReturn(roleMock);
when(mockRoleRepository.findById(any(), any())).thenReturn(Optional.empty());
RoleEntity entity = roleService.create(newRoleEntityMock);
assertNotNull("no entoty created", entity);
assertEquals("invalid name", "new mock role", entity.getName());
assertEquals("invalid scope", io.gravitee.management.model.permissions.RoleScope.PORTAL, entity.getScope());
assertFalse("no permissions found", entity.getPermissions().isEmpty());
assertTrue("invalid Permission name", entity.getPermissions().containsKey(DOCUMENTATION.getName()));
char[] perms = entity.getPermissions().get(DOCUMENTATION.getName());
assertEquals("not enough permissions", 1, perms.length);
assertEquals("not the good permission", RolePermissionAction.CREATE.getId(), perms[0]);
}
use of io.gravitee.repository.management.model.Role in project gravitee-management-rest-api by gravitee-io.
the class RoleService_FindByIdTest method test_int_to_CRUD.
private void test_int_to_CRUD(int perm, RolePermissionAction... action) throws TechnicalException {
Role roleMock = mock(Role.class);
when(roleMock.getScope()).thenReturn(RoleScope.PORTAL);
when(roleMock.getName()).thenReturn("name");
when(roleMock.getPermissions()).thenReturn(new int[] { perm });
when(mockRoleRepository.findById(RoleScope.PORTAL, "name")).thenReturn(Optional.of(roleMock));
RoleEntity entity = roleService.findById(RoleScope.PORTAL, "name");
assertNotNull("no entity found", entity);
assertEquals("invalid scope", io.gravitee.management.model.permissions.RoleScope.PORTAL, entity.getScope());
assertFalse("no permissions found", entity.getPermissions().isEmpty());
assertTrue("invalid Permission name", entity.getPermissions().containsKey(DOCUMENTATION.getName()));
char[] perms = entity.getPermissions().get(DOCUMENTATION.getName());
assertEquals("not enough permissions", action.length, perms.length);
for (RolePermissionAction rolePermissionAction : action) {
assertTrue("not the good permission", Arrays.asList(ArrayUtils.toObject(perms)).contains(rolePermissionAction.getId()));
}
}
Aggregations