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 UsernameValidatorTest { @Parameterized.Parameters public static List<Object[]> getParameters() { return Arrays.asList(new Object[][] { {null, false}, {"", false}, {" \t\n ", false}, {" username", false}, {"username ", false}, {"usernam", false}, {"us3rname", false}, {"user@domain.com", false}, {"username", true}, {"myawesomeusername", true}, {"someusernamethatiswaytoolongbutIdontreallyknowanynamelikethatso" + "thatswhyImjusttypingwhatevercomestomindhereletshopeitsovertwo" + "hundredandfiftysixcharacterslongsothetestwillfailbutitsprobably" + "notsoIbettercopypasteitsomeusernamethatiswaytoolongbutIdont" + "reallyknowanynamelikethatsothatswhyImjusttypingwhatevercomesto" + "mindhereletshopeitsovertwohundredandfiftysixcharacterslongsothe" + "testwillfailbutitsprobablynotsoIbettercopypasteit", false} }); } private final String username; private final boolean expectedResult; public UsernameValidatorTest(String username, boolean expectedResult) { this.username = username; this.expectedResult = expectedResult; } @Test public void testUsernameValidation() { UsernameValidator validator = new UsernameValidator(); assertEquals(expectedResult, validator.isValid(username, null)); } }