Search in sources :

Example 1 with Role

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]);
}
Also used : Role(io.gravitee.repository.management.model.Role) Test(org.junit.Test)

Example 2 with Role

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);
        }
    }));
}
Also used : Role(io.gravitee.repository.management.model.Role) ArgumentMatcher(org.mockito.ArgumentMatcher) Test(org.junit.Test)

Example 3 with Role

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);
        }
    }));
}
Also used : Role(io.gravitee.repository.management.model.Role) ArgumentMatcher(org.mockito.ArgumentMatcher) Test(org.junit.Test)

Example 4 with Role

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]);
}
Also used : Role(io.gravitee.repository.management.model.Role) Test(org.junit.Test)

Example 5 with Role

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()));
    }
}
Also used : Role(io.gravitee.repository.management.model.Role) RoleEntity(io.gravitee.management.model.RoleEntity) RolePermissionAction(io.gravitee.management.model.permissions.RolePermissionAction)

Aggregations

Role (io.gravitee.repository.management.model.Role)14 TechnicalManagementException (io.gravitee.management.service.exceptions.TechnicalManagementException)4 TechnicalException (io.gravitee.repository.exceptions.TechnicalException)4 Test (org.junit.Test)4 RoleEntity (io.gravitee.management.model.RoleEntity)3 RoleNotFoundException (io.gravitee.management.service.exceptions.RoleNotFoundException)3 NewRoleEntity (io.gravitee.management.model.NewRoleEntity)2 UpdateRoleEntity (io.gravitee.management.model.UpdateRoleEntity)2 RoleReservedNameException (io.gravitee.management.service.exceptions.RoleReservedNameException)2 ArgumentMatcher (org.mockito.ArgumentMatcher)2 RolePermissionAction (io.gravitee.management.model.permissions.RolePermissionAction)1 RoleAlreadyExistsException (io.gravitee.management.service.exceptions.RoleAlreadyExistsException)1 RoleScope (io.gravitee.repository.management.model.RoleScope)1