@Test public void testCreateAccount() throws AccountManagerException, PasswordCreationException, PasswordActivationException { String activationKey = accountManager.createPassword(EMAIL_ADDRESS, VALID_PASSWORD); accountManager.activatePassword(EMAIL_ADDRESS, activationKey); accountManager.createAccount(EMAIL_ADDRESS, EMAIL_ADDRESS.getAddress(), "engineer"); }
/** * We create here two account with the same email address. We expect here an * AccountCreationException with an embedded message about the duplicate email address. * * @throws AccountManagerException is thrown in case of account issues. * @throws PasswordCreationException is thrown in case of password creation issues. * @throws PasswordActivationException is thrown in case of password activation issues. */ @Test(expected = EJBException.class) public void testCreateAccountDuplicateEmail() throws AccountManagerException, PasswordCreationException, PasswordActivationException { String activationKey = accountManager.createPassword(EMAIL_ADDRESS, VALID_PASSWORD); accountManager.activatePassword(EMAIL_ADDRESS, activationKey); accountManager.createAccount(EMAIL_ADDRESS, EMAIL_ADDRESS.getAddress(), "engineer"); // now we expect an error... accountManager.createAccount(EMAIL_ADDRESS, EMAIL_ADDRESS.getAddress(), "engineer"); }
@Test public void testAuthenticateWrongPassword() throws AccountManagerException, PasswordCreationException, PasswordActivationException { String activationKey = accountManager.createPassword(EMAIL_ADDRESS, VALID_PASSWORD); accountManager.activatePassword(EMAIL_ADDRESS, activationKey); accountManager.createAccount(EMAIL_ADDRESS, EMAIL_ADDRESS.getAddress(), "engineer"); assertFalse( passwordStoreClient.authenticate( EMAIL_ADDRESS, new Password(VALID_PASSWORD.getPassword() + "Wrong!"))); }
@Test(expected = PasswordChangeException.class) public void testChangePasswordTooWeakPassword() throws AccountManagerException, PasswordChangeException, PasswordCreationException, PasswordActivationException { String activationKey = accountManager.createPassword(EMAIL_ADDRESS, VALID_PASSWORD); accountManager.activatePassword(EMAIL_ADDRESS, activationKey); accountManager.createAccount(EMAIL_ADDRESS, EMAIL_ADDRESS.getAddress(), "engineer"); assertTrue(passwordStoreClient.authenticate(EMAIL_ADDRESS, VALID_PASSWORD)); accountManager.changePassword(EMAIL_ADDRESS, VALID_PASSWORD, TOO_WEAK_PASSWORD); }
@Test public void testResetPassword() throws AccountManagerException, PasswordResetException, PasswordCreationException, PasswordActivationException { String activationKey = accountManager.createPassword(EMAIL_ADDRESS, VALID_PASSWORD); accountManager.activatePassword(EMAIL_ADDRESS, activationKey); accountManager.createAccount(EMAIL_ADDRESS, EMAIL_ADDRESS.getAddress(), "engineer"); assertTrue(passwordStoreClient.authenticate(EMAIL_ADDRESS, VALID_PASSWORD)); Password newPassword = accountManager.resetPassword(EMAIL_ADDRESS); assertTrue(passwordStoreClient.authenticate(EMAIL_ADDRESS, newPassword)); }
@Test public void testChangePassword() throws AccountManagerException, PasswordChangeException, PasswordCreationException, PasswordActivationException { String activationKey = accountManager.createPassword(EMAIL_ADDRESS, VALID_PASSWORD); accountManager.activatePassword(EMAIL_ADDRESS, activationKey); accountManager.createAccount(EMAIL_ADDRESS, EMAIL_ADDRESS.getAddress(), "engineer"); assertTrue(passwordStoreClient.authenticate(EMAIL_ADDRESS, VALID_PASSWORD)); String newPassword = VALID_PASSWORD.getPassword() + "New!"; assertTrue( accountManager.changePassword(EMAIL_ADDRESS, VALID_PASSWORD, new Password(newPassword))); assertTrue(passwordStoreClient.authenticate(EMAIL_ADDRESS, new Password(newPassword))); }
/** * For a trival password we expect a {@link PasswordCreationException} here with an embedded * message about a too weak password. * * @throws AccountManagerException is thrown in case of account issues. * @throws PasswordCreationException is thrown in case of password creation issues. */ @Test(expected = PasswordCreationException.class) public void testCreateAccountTooWeakPassword() throws AccountManagerException, PasswordCreationException { accountManager.createPassword(EMAIL_ADDRESS, TOO_WEAK_PASSWORD); }
@Test(expected = PasswordResetException.class) public void testResetPasswordWrongEmail() throws PasswordResetException { accountManager.resetPassword(EMAIL_ADDRESS); }