@NamespacePermission(fields = "#request?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public NamespaceIamRoleAuthorization createNamespaceIamRoleAuthorization(NamespaceIamRoleAuthorizationCreateRequest request) { Assert.notNull(request, "NamespaceIamRoleAuthorizationCreateRequest must be specified"); Assert.hasText(request.getNamespace(), "Namespace must be specified"); validateIamRoles(request.getIamRoles()); NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(request.getNamespace().trim()); assertNamespaceIamRoleAuthorizationNotExist(namespaceEntity); NamespaceIamRoleAuthorization result = new NamespaceIamRoleAuthorization(namespaceEntity.getCode(), new ArrayList<>()); for (IamRole iamRole : request.getIamRoles()) { NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity = createNamespaceIamRoleAuthorizationEntity(namespaceEntity, iamRole); namespaceIamRoleAuthorizationDao.saveAndRefresh(namespaceIamRoleAuthorizationEntity); result.getIamRoles().add(new IamRole(namespaceIamRoleAuthorizationEntity.getIamRoleName(), namespaceIamRoleAuthorizationEntity.getDescription())); } return result; }
@Test public void createNamespaceIamRoleAuthorizationAssertErrorWhenIamRolesEmpty() { List<IamRole> expectedIamRoles = Arrays.asList(); NamespaceIamRoleAuthorizationCreateRequest expectedRequest = new NamespaceIamRoleAuthorizationCreateRequest("namespace", expectedIamRoles); try { namespaceIamRoleAuthorizationServiceImpl.createNamespaceIamRoleAuthorization(expectedRequest); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("At least 1 IAM roles must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@Test public void deleteNamespaceIamRoleAuthorizationAssertErrorWhenNamespaceIsBlank() { String expectedNamespace = " "; try { namespaceIamRoleAuthorizationServiceImpl.deleteNamespaceIamRoleAuthorization(expectedNamespace); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("Namespace must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@NamespacePermission(fields = "#namespace", permissions = NamespacePermissionEnum.GRANT) @Override public NamespaceIamRoleAuthorization updateNamespaceIamRoleAuthorization(String namespace, NamespaceIamRoleAuthorizationUpdateRequest request) { Assert.hasText(namespace, "Namespace must be specified"); Assert.notNull(request, "NamespaceIamRoleAuthorizationCreateRequest must be specified"); validateIamRoles(request.getIamRoles()); NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(namespace.trim()); List<NamespaceIamRoleAuthorizationEntity> namespaceIamRoleAuthorizationEntities = getNamespaeIamRoleAuthorizationEntities(namespaceEntity); for (NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity : namespaceIamRoleAuthorizationEntities) { namespaceIamRoleAuthorizationDao.delete(namespaceIamRoleAuthorizationEntity); } NamespaceIamRoleAuthorization result = new NamespaceIamRoleAuthorization(namespaceEntity.getCode(), new ArrayList<>()); for (IamRole iamRole : request.getIamRoles()) { NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity = createNamespaceIamRoleAuthorizationEntity(namespaceEntity, iamRole); namespaceIamRoleAuthorizationDao.saveAndRefresh(namespaceIamRoleAuthorizationEntity); result.getIamRoles().add(new IamRole(namespaceIamRoleAuthorizationEntity.getIamRoleName(), namespaceIamRoleAuthorizationEntity.getDescription())); } return result; }
@Test public void updateNamespaceIamRoleAuthorizationAssertErrorWhenIamRolesEmpty() { String expectedNamespace = "namespace"; NamespaceIamRoleAuthorizationUpdateRequest expectedNamespaceIamRoleAuthorizationUpdateRequest = new NamespaceIamRoleAuthorizationUpdateRequest(Collections.emptyList()); try { namespaceIamRoleAuthorizationServiceImpl.updateNamespaceIamRoleAuthorization(expectedNamespace, expectedNamespaceIamRoleAuthorizationUpdateRequest); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("At least 1 IAM roles must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@NamespacePermission(fields = "#namespace", permissions = NamespacePermissionEnum.READ) @Override public NamespaceIamRoleAuthorization getNamespaceIamRoleAuthorization(String namespace) { Assert.hasText(namespace, "Namespace must be specified"); NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(namespace.trim()); List<NamespaceIamRoleAuthorizationEntity> namespaceIamRoleAuthorizationEntities = getNamespaeIamRoleAuthorizationEntities(namespaceEntity); NamespaceIamRoleAuthorization result = new NamespaceIamRoleAuthorization(namespaceEntity.getCode(), new ArrayList<>()); for (NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity : namespaceIamRoleAuthorizationEntities) { result.getIamRoles().add(new IamRole(namespaceIamRoleAuthorizationEntity.getIamRoleName(), namespaceIamRoleAuthorizationEntity.getDescription())); } return result; }
@Test public void getNamespaceIamRoleAuthorizationAssertErrorWhenNamespaceIsBlank() { String expectedNamespace = " "; try { namespaceIamRoleAuthorizationServiceImpl.getNamespaceIamRoleAuthorization(expectedNamespace); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("Namespace must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@Test public void getNamespaceIamRoleAuthorizationsAssertResultEmptyWhenDaoReturnsEmpty() { when(namespaceIamRoleAuthorizationDao.getNamespaceIamRoleAuthorizations(any())).thenReturn(Collections.emptyList()); NamespaceIamRoleAuthorizations result = namespaceIamRoleAuthorizationServiceImpl.getNamespaceIamRoleAuthorizations(); assertNotNull(result); assertNotNull(result.getNamespaceIamRoleAuthorizations()); assertEquals(0, result.getNamespaceIamRoleAuthorizations().size()); verify(namespaceIamRoleAuthorizationDao).getNamespaceIamRoleAuthorizations(null); verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@NamespacePermission(fields = "#namespace", permissions = NamespacePermissionEnum.GRANT) @Override public NamespaceIamRoleAuthorization updateNamespaceIamRoleAuthorization(String namespace, NamespaceIamRoleAuthorizationUpdateRequest request) { Assert.hasText(namespace, "Namespace must be specified"); Assert.notNull(request, "NamespaceIamRoleAuthorizationCreateRequest must be specified"); validateIamRoles(request.getIamRoles()); NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(namespace.trim()); List<NamespaceIamRoleAuthorizationEntity> namespaceIamRoleAuthorizationEntities = getNamespaeIamRoleAuthorizationEntities(namespaceEntity); for (NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity : namespaceIamRoleAuthorizationEntities) { namespaceIamRoleAuthorizationDao.delete(namespaceIamRoleAuthorizationEntity); } NamespaceIamRoleAuthorization result = new NamespaceIamRoleAuthorization(namespaceEntity.getCode(), new ArrayList<>()); for (IamRole iamRole : request.getIamRoles()) { NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity = createNamespaceIamRoleAuthorizationEntity(namespaceEntity, iamRole); namespaceIamRoleAuthorizationDao.saveAndRefresh(namespaceIamRoleAuthorizationEntity); result.getIamRoles().add(new IamRole(namespaceIamRoleAuthorizationEntity.getIamRoleName(), namespaceIamRoleAuthorizationEntity.getDescription())); } return result; }
@Test public void updateNamespaceIamRoleAuthorizationAssertErrorWhenRoleNameIsBlank() { String expectedNamespace = "namespace"; List<IamRole> iamRoles = new ArrayList<>(); IamRole iamRole1 = new IamRole(" ", "iamRoleDescription1"); iamRoles.add(iamRole1); IamRole iamRole2 = new IamRole(" ", " "); iamRoles.add(iamRole2); NamespaceIamRoleAuthorizationUpdateRequest expectedNamespaceIamRoleAuthorizationUpdateRequest = new NamespaceIamRoleAuthorizationUpdateRequest(iamRoles); try { namespaceIamRoleAuthorizationServiceImpl.updateNamespaceIamRoleAuthorization(expectedNamespace, expectedNamespaceIamRoleAuthorizationUpdateRequest); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("IAM role name must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@NamespacePermission(fields = "#namespace", permissions = NamespacePermissionEnum.READ) @Override public NamespaceIamRoleAuthorization getNamespaceIamRoleAuthorization(String namespace) { Assert.hasText(namespace, "Namespace must be specified"); NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(namespace.trim()); List<NamespaceIamRoleAuthorizationEntity> namespaceIamRoleAuthorizationEntities = getNamespaeIamRoleAuthorizationEntities(namespaceEntity); NamespaceIamRoleAuthorization result = new NamespaceIamRoleAuthorization(namespaceEntity.getCode(), new ArrayList<>()); for (NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity : namespaceIamRoleAuthorizationEntities) { result.getIamRoles().add(new IamRole(namespaceIamRoleAuthorizationEntity.getIamRoleName(), namespaceIamRoleAuthorizationEntity.getDescription())); } return result; }
@Test public void getNamespaceIamRoleAuthorizationAssertErrorWhenNoEntitiesFound() { String expectedNamespace = "namespace"; NamespaceEntity expectedNamespaceEntity = new NamespaceEntity(); expectedNamespaceEntity.setCode("NAMESPACE"); List<NamespaceIamRoleAuthorizationEntity> namespaceIamRoleAuthorizationEntities = Collections.emptyList(); when(namespaceDaoHelper.getNamespaceEntity(any())).thenReturn(expectedNamespaceEntity); when(namespaceIamRoleAuthorizationDao.getNamespaceIamRoleAuthorizations(any())).thenReturn(namespaceIamRoleAuthorizationEntities); try { namespaceIamRoleAuthorizationServiceImpl.getNamespaceIamRoleAuthorization(expectedNamespace); fail(); } catch (Exception e) { assertEquals(ObjectNotFoundException.class, e.getClass()); assertEquals(String.format("Namespace IAM role authorizations for namespace \"%s\" do not exist", expectedNamespaceEntity.getCode()), e.getMessage()); } verify(namespaceDaoHelper).getNamespaceEntity(expectedNamespace); verify(namespaceIamRoleAuthorizationDao).getNamespaceIamRoleAuthorizations(expectedNamespaceEntity); verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
NamespaceIamRoleAuthorizations result = namespaceIamRoleAuthorizationServiceImpl.getNamespaceIamRoleAuthorizations();
@NamespacePermission(fields = "#request?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public NamespaceIamRoleAuthorization createNamespaceIamRoleAuthorization(NamespaceIamRoleAuthorizationCreateRequest request) { Assert.notNull(request, "NamespaceIamRoleAuthorizationCreateRequest must be specified"); Assert.hasText(request.getNamespace(), "Namespace must be specified"); validateIamRoles(request.getIamRoles()); NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(request.getNamespace().trim()); assertNamespaceIamRoleAuthorizationNotExist(namespaceEntity); NamespaceIamRoleAuthorization result = new NamespaceIamRoleAuthorization(namespaceEntity.getCode(), new ArrayList<>()); for (IamRole iamRole : request.getIamRoles()) { NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity = createNamespaceIamRoleAuthorizationEntity(namespaceEntity, iamRole); namespaceIamRoleAuthorizationDao.saveAndRefresh(namespaceIamRoleAuthorizationEntity); result.getIamRoles().add(new IamRole(namespaceIamRoleAuthorizationEntity.getIamRoleName(), namespaceIamRoleAuthorizationEntity.getDescription())); } return result; }
@Test public void createNamespaceIamRoleAuthorizationAssertErrorWhenNamespaceIsBlank() { IamRole expectedIamRole1 = new IamRole("iamRoleName1", "iamRoleDescription1"); IamRole expectedIamRole2 = new IamRole("iamRoleName2", " "); List<IamRole> expectedIamRoles = Arrays.asList(expectedIamRole1, expectedIamRole2); NamespaceIamRoleAuthorizationCreateRequest expectedRequest = new NamespaceIamRoleAuthorizationCreateRequest(" ", expectedIamRoles); try { namespaceIamRoleAuthorizationServiceImpl.createNamespaceIamRoleAuthorization(expectedRequest); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("Namespace must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@Test public void updateNamespaceIamRoleAuthorizationAssertErrorWhenNamespaceIsBlank() { String expectedNamespace = " "; List<IamRole> iamRoles = new ArrayList<>(); IamRole iamRole1 = new IamRole("iamRoleName1", "iamRoleDescription1"); iamRoles.add(iamRole1); IamRole iamRole2 = new IamRole("iamRoleName2", " "); iamRoles.add(iamRole2); NamespaceIamRoleAuthorizationUpdateRequest expectedNamespaceIamRoleAuthorizationUpdateRequest = new NamespaceIamRoleAuthorizationUpdateRequest(iamRoles); try { namespaceIamRoleAuthorizationServiceImpl.updateNamespaceIamRoleAuthorization(expectedNamespace, expectedNamespaceIamRoleAuthorizationUpdateRequest); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("Namespace must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@NamespacePermission(fields = "#namespace", permissions = NamespacePermissionEnum.GRANT) @Override public NamespaceIamRoleAuthorization deleteNamespaceIamRoleAuthorization(String namespace) { Assert.hasText(namespace, "Namespace must be specified"); NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(namespace.trim()); List<NamespaceIamRoleAuthorizationEntity> namespaceIamRoleAuthorizationEntities = getNamespaeIamRoleAuthorizationEntities(namespaceEntity); NamespaceIamRoleAuthorization result = new NamespaceIamRoleAuthorization(namespaceEntity.getCode(), new ArrayList<>()); for (NamespaceIamRoleAuthorizationEntity namespaceIamRoleAuthorizationEntity : namespaceIamRoleAuthorizationEntities) { namespaceIamRoleAuthorizationDao.delete(namespaceIamRoleAuthorizationEntity); result.getIamRoles().add(new IamRole(namespaceIamRoleAuthorizationEntity.getIamRoleName(), namespaceIamRoleAuthorizationEntity.getDescription())); } return result; }
namespaceIamRoleAuthorizationServiceImpl.getNamespaceIamRoleAuthorization(expectedNamespace);
@Test public void deleteNamespaceIamRoleAuthorizationAssertErrorWhenDaoReturnsEmpty() { String expectedNamespace = "namespace"; NamespaceEntity expectedNamespaceEntity = new NamespaceEntity(); expectedNamespaceEntity.setCode("NAMESPACE"); when(namespaceDaoHelper.getNamespaceEntity(any())).thenReturn(expectedNamespaceEntity); when(namespaceIamRoleAuthorizationDao.getNamespaceIamRoleAuthorizations(any())).thenReturn(Collections.emptyList()); try { namespaceIamRoleAuthorizationServiceImpl.deleteNamespaceIamRoleAuthorization(expectedNamespace); fail(); } catch (Exception e) { assertEquals(ObjectNotFoundException.class, e.getClass()); assertEquals(String.format("Namespace IAM role authorizations for namespace \"%s\" do not exist", expectedNamespaceEntity.getCode()), e.getMessage()); } verify(namespaceDaoHelper).getNamespaceEntity(expectedNamespace); verify(namespaceIamRoleAuthorizationDao).getNamespaceIamRoleAuthorizations(expectedNamespaceEntity); verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }
@Test public void createNamespaceIamRoleAuthorizationAssertErrorWhenRoleNameIsBlank() { IamRole expectedIamRole1 = new IamRole("iamRoleName1", "iamRoleDescription1"); IamRole expectedIamRole2 = new IamRole(" ", "iamRoleDescription2"); List<IamRole> expectedIamRoles = Arrays.asList(expectedIamRole1, expectedIamRole2); NamespaceIamRoleAuthorizationCreateRequest expectedRequest = new NamespaceIamRoleAuthorizationCreateRequest("namespace", expectedIamRoles); try { namespaceIamRoleAuthorizationServiceImpl.createNamespaceIamRoleAuthorization(expectedRequest); fail(); } catch (Exception e) { assertEquals(IllegalArgumentException.class, e.getClass()); assertEquals("IAM role name must be specified", e.getMessage()); } verifyNoMoreInteractions(namespaceDaoHelper, namespaceIamRoleAuthorizationDao); }