package tv.dyndns.kishibe.qmaclone.client.creation.validater;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import tv.dyndns.kishibe.qmaclone.client.game.ProblemType;
@RunWith(JUnit4.class)
public class ValidatorSlotTest extends ValidatorTestBase {
private ValidatorSlot validator;
@Before
public void setUp() throws Exception {
super.setUp();
validator = new ValidatorSlot();
problem.type = ProblemType.Slot;
problem.answers = toArray("abcd", "ABCD", "0123", "あいうえ");
}
@Test
public void checkShouldReturnTrueIfValid() {
assertEquals(Arrays.asList(), validator.check(problem).warn);
}
@Test
public void checkShouldReturnFalseIfNumberOfAnswerIsLow() {
problem.answers = toArray("abcd", "ABCD");
assertEquals(Arrays.asList("解答は4つ必要です"), validator.check(problem).warn);
}
@Test
public void checkShouldReturnFalseIfLengthsAreDifferent() {
problem.answers = toArray("a", "AB", "012", "あいうえ");
assertEquals(Arrays.asList("解答の長さがそろっていません"), validator.check(problem).warn);
}
@Test
public void checkShouldReturnFalseIfTooShort() {
problem.answers = toArray("a", "A", "0", "あ");
assertEquals(Arrays.asList("解答は2文字以でなければなりません"), validator.check(problem).warn);
}
@Test
public void checkShouldReturnFalseIfTooLong() {
problem.answers = toArray("0123456", "ABCDEFG", "abcdefg", "あいうえおかき");
assertEquals(Arrays.asList("解答は6文字以下でなければなりません"), validator.check(problem).warn);
}
@Test
public void checkShouldReturnFalseIf() {
problem.answers = toArray("Abcd", "ABCD", "0123", "あいうえ");
assertEquals(Arrays.asList("1文字目の縦列に重複している文字があります"), validator.check(problem).warn);
}
}