@Provides @Singleton protected PasswordGenerator.Config providePasswordGenerator() { return new PasswordGenerator() .lower().min(2).max(10).exclude("ilowyz".toCharArray()) .upper().min(2).max(10).exclude("IOWYZ".toCharArray()) .numbers().min(2).max(10).exclude("10".toCharArray()) .symbols().count(0); }
@Provides @Singleton protected PasswordGenerator.Config providePasswordGenerator() { return new PasswordGenerator() .lower().min(2).max(10).exclude("ilowyz".toCharArray()) .upper().min(2).max(10).exclude("IOWYZ".toCharArray()) .numbers().min(2).max(10).exclude("10".toCharArray()) .symbols().count(0); }
@Test public void lowerAndUpperWithConstrainedLength() { String password = new PasswordGenerator() .lower().min(2).max(5) .upper().count(3) .numbers().count(0) .symbols().count(0) .generate(); assertTrue(password.matches("^[a-zA-Z]+$")); assertTrue(password.replaceAll("[A-Z]", "").matches("[a-z]{2,5}")); assertTrue(password.replaceAll("[a-z]", "").matches("[A-Z]{3}")); }
@Provides @Singleton protected PasswordGenerator.Config providePasswordGenerator() { // Guest passwords must be between 6-72 characters long. // Must contain an upper case character. // Must contain a lower case character. // Must contain a numeric digit. // Must contain a special character. Control characters are not allowed. return new PasswordGenerator() .lower().min(2).max(10) .upper().min(2).max(10) .numbers().min(2).max(10) .symbols().min(2).max(10); }
@Test public void emptyPassword() { String password = new PasswordGenerator() .lower().count(0) .upper().count(0) .numbers().count(0) .symbols().count(0) .generate(); assertEquals(password, ""); }
@Test public void characterExclusion() { String password = new PasswordGenerator() .lower().count(0) .upper().count(0) .numbers().exclude("012345".toCharArray()) .symbols().count(0) .generate(); assertTrue(password.matches("^[6-9]+$")); } }
@Test public void onlyLowerCase() { String password = new PasswordGenerator() .upper().count(0) .numbers().count(0) .symbols().count(0) .generate(); assertTrue(password.matches("^[a-z]+$")); }