### Question:
DefaultRoleAccessor implements RoleAccessor { @Override public void updateRoleName(Long roleId, String roleName) throws AlertDatabaseConstraintException { Optional<RoleEntity> foundRole = roleRepository.findById(roleId); if (foundRole.isPresent()) { RoleEntity roleEntity = foundRole.get(); if (BooleanUtils.isFalse(roleEntity.getCustom())) { throw new AlertDatabaseConstraintException("Cannot update the existing role '" + foundRole.get().getRoleName() + "' to '" + roleName + "' because it is not a custom role"); } RoleEntity updatedEntity = new RoleEntity(roleName, true); updatedEntity.setId(roleEntity.getId()); roleRepository.save(updatedEntity); } } @Autowired  DefaultRoleAccessor(RoleRepository roleRepository, UserRoleRepository userRoleRepository, PermissionMatrixRepository permissionMatrixRepository,
        RegisteredDescriptorRepository registeredDescriptorRepository, ConfigContextRepository configContextRepository); @Override Set<UserRoleModel> getRoles(); @Override Set<UserRoleModel> getRoles(Collection<Long> roleIds); @Override boolean doesRoleNameExist(String name); @Override UserRoleModel createRole(String roleName); @Override UserRoleModel createRoleWithPermissions(String roleName, PermissionMatrixModel permissionMatrix); @Override void updateRoleName(Long roleId, String roleName); @Override PermissionMatrixModel updatePermissionsForRole(String roleName, PermissionMatrixModel permissionMatrix); @Override void deleteRole(Long roleId); @Override void updateUserRoles(Long userId, Collection<UserRoleModel> roles); @Override PermissionMatrixModel mergePermissionsForRoles(Collection<String> roleNames); @Override PermissionMatrixModel readPermissionsForRole(Long roleId);  }### Answer:
@Test public void updateRoleNameTest() throws Exception { final String roleName = "roleName"; final Long roleId = 1L; RoleEntity roleEntity = new RoleEntity(DefaultUserRole.ALERT_USER.name(), true); roleEntity.setId(1L); Mockito.when(roleRepository.findById(Mockito.any())).thenReturn(Optional.of(roleEntity)); DefaultRoleAccessor authorizationUtility = new DefaultRoleAccessor(roleRepository, userRoleRepository, permissionMatrixRepository, registeredDescriptorRepository, configContextRepository); authorizationUtility.updateRoleName(roleId, roleName); Mockito.verify(roleRepository).save(Mockito.any()); }
@Test public void updateRoleNameCustomFalseTest() throws Exception { DefaultRoleAccessor authorizationUtility = new DefaultRoleAccessor(roleRepository, userRoleRepository, permissionMatrixRepository, registeredDescriptorRepository, configContextRepository); RoleEntity roleEntity = new RoleEntity(DefaultUserRole.ALERT_USER.name(), false); roleEntity.setId(1L); Mockito.when(roleRepository.findById(Mockito.any())).thenReturn(Optional.of(roleEntity)); try { authorizationUtility.updateRoleName(1L, "roleName"); fail("Custom parameter of roleEntity set to 'false' did not throw expected AlertDatabaseConstraintException."); } catch (AlertDatabaseConstraintException e) { assertNotNull(e); } }