@Test public void allValuesPopulatedHappyPath() { ChangePasswordForm form = new ChangePasswordForm(); form.setOldPassword("0ldPassw$rd"); form.setPassword("passw0rd"); form.setRetypedPassword("passw0rd"); Set<ConstraintViolation<ChangePasswordForm>> errors = validator.validate(form); assertEquals("Should be no errors", 0, errors.size()); }
@Test public void testSpacesPermittted() throws Exception { ChangePasswordForm form = new ChangePasswordForm(); form.setPassword("Ben Kingsley is my no. 1 actor"); form.setRetypedPassword("Ben Kingsley is my no. 1 actor"); form.setOldPassword("ååååååå1å"); Set<ConstraintViolation<ChangePasswordForm>> errors = validator.validate(form); assertEquals("Should be no errors", 0, errors.size()); }
@Test public void testNonUsAsciiCharsPermitted() throws Exception { ChangePasswordForm form = new ChangePasswordForm(); form.setOldPassword("passw0rd"); form.setPassword("ååååååå1å"); form.setRetypedPassword("ååååååå1å"); Set<ConstraintViolation<ChangePasswordForm>> errors = validator.validate(form); assertEquals("Should be no errors", 0, errors.size()); }
@Test public void testPasswordMissingNumberInvalid() { ChangePasswordForm form = new ChangePasswordForm(); form.setOldPassword("£$$$$$$r"); Set<ConstraintViolation<ChangePasswordForm>> violations = validator.validate(form); Map<String, String> allErrorValues = retrieveErrorKeyAndMessage(violations); String password = allErrorValues.get("oldPassword"); assertEquals( "Passwords must be 8 or more characters and contain at least 1 number and at least 1 alpha character or symbol", password); // add in a number form.setOldPassword("£$$$$$r1"); violations = validator.validate(form); allErrorValues = retrieveErrorKeyAndMessage(violations); password = allErrorValues.get("oldPassword"); assertNull(password); }
@Test public void testSymbolsPermitttedButNotRequired() throws Exception { ChangePasswordForm form = new ChangePasswordForm(); form.setOldPassword("Ben Kingsley is my no. 1 actor"); form.setPassword("passw0rd"); form.setRetypedPassword("passw0rd"); Set<ConstraintViolation<ChangePasswordForm>> errors = validator.validate(form); assertEquals("Should be no errors", 0, errors.size()); // check that the test doesn't break when symbols introduced form.setPassword("p$ssw0rd"); form.setRetypedPassword("p$ssw0rd"); errors = validator.validate(form); assertEquals("Should be no errors", 0, errors.size()); }
@Test public void testPasswordFormMissingData() { ChangePasswordForm form = new ChangePasswordForm(); form.setOldPassword(""); form.setPassword(""); form.setRetypedPassword(""); Set<ConstraintViolation<ChangePasswordForm>> violations = validator.validate(form); Map<String, String> allErrorValues = retrieveErrorKeyAndMessage(violations); String password = allErrorValues.get("password"); String confirmedPassword = allErrorValues.get("retypedPassword"); String oldPassword = allErrorValues.get("oldPassword"); assertEquals( "Passwords must be 8 or more characters and contain at least 1 number and at least 1 alpha character or symbol", password); assertEquals( "Passwords must be 8 or more characters and contain at least 1 number and at least 1 alpha character or symbol", confirmedPassword); assertEquals( "Passwords must be 8 or more characters and contain at least 1 number and at least 1 alpha character or symbol", oldPassword); }