public void testCreateAndDeleteApplicationPermission()

in component-test/src/main/java/TestApplications.java [64:105]


  public void testCreateAndDeleteApplicationPermission() throws InterruptedException {
    try (final AutoUserContext ignored
                 = tenantApplicationSecurityEnvironment.createAutoSeshatContext()) {
      final ApplicationSignatureTestData appPlusSig = setApplicationSignature();

      final Permission identityManagementPermission = new Permission();
      identityManagementPermission.setPermittableEndpointGroupIdentifier(PermittableGroupIds.IDENTITY_MANAGEMENT);
      identityManagementPermission.setAllowedOperations(Collections.singleton(AllowedOperation.READ));

      createApplicationPermission(appPlusSig.getApplicationIdentifier(), identityManagementPermission);

      {
        final List<Permission> applicationPermissions = getTestSubject().getApplicationPermissions(appPlusSig.getApplicationIdentifier());
        Assert.assertTrue(applicationPermissions.contains(identityManagementPermission));

        final Permission applicationPermission = getTestSubject().getApplicationPermission(appPlusSig.getApplicationIdentifier(), PermittableGroupIds.IDENTITY_MANAGEMENT);
        Assert.assertEquals(identityManagementPermission, applicationPermission);
      }

      final Permission roleManagementPermission = new Permission();
      roleManagementPermission.setPermittableEndpointGroupIdentifier(PermittableGroupIds.ROLE_MANAGEMENT);
      roleManagementPermission.setAllowedOperations(Collections.singleton(AllowedOperation.READ));

      createApplicationPermission(appPlusSig.getApplicationIdentifier(), roleManagementPermission);

      {
        final List<Permission> applicationPermissions = getTestSubject().getApplicationPermissions(appPlusSig.getApplicationIdentifier());
        Assert.assertTrue(applicationPermissions.contains(identityManagementPermission));
        Assert.assertTrue(applicationPermissions.contains(roleManagementPermission));
      }

      getTestSubject().deleteApplicationPermission(appPlusSig.getApplicationIdentifier(), identityManagementPermission.getPermittableEndpointGroupIdentifier());
      Assert.assertTrue(eventRecorder.wait(EventConstants.OPERATION_DELETE_APPLICATION_PERMISSION,
              new ApplicationPermissionEvent(appPlusSig.getApplicationIdentifier(), PermittableGroupIds.IDENTITY_MANAGEMENT)));

      {
        final List<Permission> applicationPermissions = getTestSubject().getApplicationPermissions(appPlusSig.getApplicationIdentifier());
        Assert.assertFalse(applicationPermissions.contains(identityManagementPermission));
        Assert.assertTrue(applicationPermissions.contains(roleManagementPermission));
      }
    }
  }