package com.cardshifter.core;
import com.cardshifter.core.username.*;
import org.junit.*;
import org.junit.runner.*;
import org.junit.runners.*;
import java.util.*;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class UserNameTest {
@RunWith(Parameterized.class)
public static class ValidTest {
@Parameterized.Parameters(name = "{index}: \"{0}\"")
public static Iterable<String[]> data() {
return Arrays.asList(new String[][] {
{"a"}, {"abcdefghijklmnopqrst"}, {"0123456789"}, {"_____"}, {"abc def"}
});
}
@Parameterized.Parameter
public String input;
@Test
public void testValid() throws InvalidUserNameException {
UserName.create(input);
}
}
@RunWith(Parameterized.class)
public static class InvalidTest {
@Parameterized.Parameters(name = "{index}: name=\"{0}\", expected error=\"{1}\"")
public static Iterable<String[]> data() {
return Arrays.asList(new String[][] {
{ " abcdef", "Starts or ends with space"},
{ "abcdef ", "Starts or ends with space"},
{ "", "Too short" },
{ "abcdefghijklmnopqrstu", "Too long" },
{ "abc def", "More than one consecutive space" },
{ "Server", "Reserved" },
{ "undefined", "Reserved" }
});
}
@Parameterized.Parameter(value=0)
public String input;
@Parameterized.Parameter(value=1)
public String expectedError;
@Test
public void testInvalid() {
try {
UserName.create(input);
fail("Did not throw InvalidUserNameException");
} catch (InvalidUserNameException e) {
assertTrue(e.getMessage().contains(expectedError));
}
}
}
}