package svanimpe.reminders.validation; import java.util.Arrays; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import static org.junit.Assert.*; @RunWith(Parameterized.class) public class PasswordValidatorTest { @Parameterized.Parameters public static List<Object[]> getParameters() { return Arrays.asList(new Object[][] { {null, false}, {"", false}, {" \t\n ", false}, {" password", false}, {"password ", false}, {"passwor", false}, {"password", true}, {"P4$$vv0rD", true}, {"super - secret - password", true}, {"somepasswordthatiswaytoolongbutIdontreallyknowanywordlikethatso" + "thatswhyImjusttypingwhatevercomestomindhereletshopeitsovertwo" + "hundredandfiftysixcharacterslongsothetestwillfailbutitsprobably" + "notsoIbettercopypasteitsomepasswordthatiswaytoolongbutIdont" + "reallyknowanywordlikethatsothatswhyImjusttypingwhatevercomesto" + "mindhereletshopeitsovertwohundredandfiftysixcharacterslongsothe" + "testwillfailbutitsprobablynotsoIbettercopypasteit", false} }); } private final String password; private final boolean expectedResult; public PasswordValidatorTest(String password, boolean expectedResult) { this.password = password; this.expectedResult = expectedResult; } @Test public void testPasswordValidation() { PasswordValidator validator = new PasswordValidator(); assertEquals(expectedResult, validator.isValid(password, null)); } }