@Test public void createAuthenticatableResource_invalidPassword_shouldFail() { authenticateSystemResource(); final String domainName = generateDomain(); final String resourceClassName = generateResourceClass(true, false); // attempt to create authenticatable resource with invalid passwords try { accessControlContext.createResource(resourceClassName, domainName, (Credentials) null); fail("creating authenticatable resource with null credentials should have failed"); } catch (NullPointerException e) { assertThat(e.getMessage().toLowerCase(), containsString("credentials required")); } try { accessControlContext.createResource( resourceClassName, domainName, PasswordCredentials.newInstance(null)); fail("creating authenticatable resource with null password should have failed"); } catch (InvalidCredentialsException e) { assertThat(e.getMessage().toLowerCase(), containsString("password required, none specified")); } }
@Test public void createAuthenticatableResource_blankNames_shouldFail() { authenticateSystemResource(); final String domainName = generateDomain(); final String resourceClassName = generateResourceClass(true, false); final char[] password = generateUniquePassword(); final String externalId = generateUniqueExternalId(); // attempt to create authenticatable resources with empty or whitespaced parameters try { accessControlContext.createResource( "", domainName, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty resource class name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("resource class required")); } try { accessControlContext.createResource( "", domainName, externalId, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty resource class name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("resource class required")); } try { accessControlContext.createResource( " \t", domainName, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty resource class name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("resource class required")); } try { accessControlContext.createResource( " \t", domainName, externalId, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty resource class name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("resource class required")); } try { accessControlContext.createResource( resourceClassName, "", PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty domain name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("domain required")); } try { accessControlContext.createResource( resourceClassName, "", externalId, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty domain name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("domain required")); } try { accessControlContext.createResource( resourceClassName, " \t", PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty domain name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("domain required")); } try { accessControlContext.createResource( resourceClassName, " \t", externalId, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty domain name should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("domain required")); } try { accessControlContext.createResource( resourceClassName, domainName, "", PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty external id should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("external id required")); } try { accessControlContext.createResource( resourceClassName, domainName, " \t", PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with empty external id should have failed"); } catch (IllegalArgumentException e) { assertThat(e.getMessage().toLowerCase(), containsString("external id required")); } try { accessControlContext.createResource( resourceClassName, domainName, PasswordCredentials.newInstance("".toCharArray())); fail("creating authenticatable resource with empty password should have failed"); } catch (InvalidCredentialsException e) { assertThat(e.getMessage().toLowerCase(), containsString("password cannot be zero length")); } try { accessControlContext.createResource( resourceClassName, domainName, externalId, PasswordCredentials.newInstance("".toCharArray())); fail("creating authenticatable resource with empty password should have failed"); } catch (InvalidCredentialsException e) { assertThat(e.getMessage().toLowerCase(), containsString("password cannot be zero length")); } try { accessControlContext.createResource( resourceClassName, domainName, externalId, PasswordCredentials.newInstance(" \t".toCharArray())); fail("creating authenticatable resource with empty password should have failed"); } catch (InvalidCredentialsException e) { assertThat(e.getMessage().toLowerCase(), containsString("password cannot be blank")); } try { accessControlContext.createResource( resourceClassName, domainName, PasswordCredentials.newInstance(" \t".toCharArray())); fail("creating authenticatable resource with empty password should have failed"); } catch (InvalidCredentialsException e) { assertThat(e.getMessage().toLowerCase(), containsString("password cannot be blank")); } }
@Test public void createAuthenticatableResource_nulls_shouldFail() { authenticateSystemResource(); final String domainName = generateDomain(); final String resourceClassName = generateResourceClass(true, false); final char[] password = generateUniquePassword(); final String externalId = generateUniqueExternalId(); // attempt to create resources with null parameters try { accessControlContext.createResource( null, domainName, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with null resource class name should have failed"); } catch (NullPointerException e) { assertThat(e.getMessage().toLowerCase(), containsString("resource class required")); } try { accessControlContext.createResource( null, domainName, externalId, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with null resource class name should have failed"); } catch (NullPointerException e) { assertThat(e.getMessage().toLowerCase(), containsString("resource class required")); } try { accessControlContext.createResource( resourceClassName, null, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with null domain name should have failed"); } catch (NullPointerException e) { assertThat(e.getMessage().toLowerCase(), containsString("domain required")); } try { accessControlContext.createResource( resourceClassName, null, externalId, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with null domain name should have failed"); } catch (NullPointerException e) { assertThat(e.getMessage().toLowerCase(), containsString("domain required")); } try { accessControlContext.createResource( resourceClassName, domainName, null, PasswordCredentials.newInstance(password)); fail("creating authenticatable resource with null external id should have failed"); } catch (NullPointerException e) { assertThat(e.getMessage().toLowerCase(), containsString("external id required")); } try { accessControlContext.createResource(resourceClassName, domainName, (Credentials) null); fail("creating authenticatable resource with null credentials should have failed"); } catch (NullPointerException e) { assertThat( e.getMessage().toLowerCase(), containsString("credentials required, none specified")); } try { accessControlContext.createResource(resourceClassName, domainName, externalId, null); fail("creating authenticatable resource with null credentials should have failed"); } catch (NullPointerException e) { assertThat( e.getMessage().toLowerCase(), containsString("credentials required, none specified")); } try { accessControlContext.createResource( resourceClassName, domainName, PasswordCredentials.newInstance(null)); fail("creating authenticatable resource with null password should have failed"); } catch (InvalidCredentialsException e) { assertThat(e.getMessage().toLowerCase(), containsString("password required, none specified")); } try { accessControlContext.createResource( resourceClassName, domainName, externalId, PasswordCredentials.newInstance(null)); fail("creating authenticatable resource with null password should have failed"); } catch (InvalidCredentialsException e) { assertThat(e.getMessage().toLowerCase(), containsString("password required, none specified")); } }