package tv.dyndns.kishibe.qmaclone.client.game.judge;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import tv.dyndns.kishibe.qmaclone.client.constant.Constant;
import com.google.common.base.Joiner;
@RunWith(JUnit4.class)
public class JudgeSenmusubiTest extends JudgeTestBase {
private JudgeSenmusubi judge;
@Before
public void setUp() throws Exception {
super.setUp();
judge = new JudgeSenmusubi();
}
@Test
public void judgeShouldReturnFalseIfNoAnswer() {
String playerAnswer = "";
assertFalse(judge.judge(problem, playerAnswer));
}
@Test
public void judgeShouldReturnFalseIfTimeUp() {
String playerAnswer = null;
assertFalse(judge.judge(problem, playerAnswer));
}
@Test
public void judgeShouldReturnTrueIfCorrect() {
problem.answers = toArray("a", "b", "c", "d");
problem.choices = toArray("A", "B", "C", "D");
problem.shuffledAnswers = toArray("a", "b", "c", "d");
problem.shuffledChoices = toArray("A", "B", "C", "D");
String p = Constant.DELIMITER_KUMIAWASE_PAIR;
String l = Constant.DELIMITER_GENERAL;
String playerAnswer = Joiner.on(l).join("A" + p + "a", "B" + p + "b", "C" + p + "c",
"D" + p + "d");
assertTrue(judge.judge(problem, playerAnswer));
}
@Test
public void judgeShouldReturnFalseIfIncorrect() {
problem.answers = toArray("a", "b", "c", "d");
problem.choices = toArray("A", "B", "C", "D");
problem.shuffledAnswers = toArray("a", "b", "c", "d");
problem.shuffledChoices = toArray("A", "B", "C", "D");
String p = Constant.DELIMITER_KUMIAWASE_PAIR;
String l = Constant.DELIMITER_GENERAL;
String playerAnswer = Joiner.on(l).join("A" + p + "a", "C" + p + "b", "B" + p + "c",
"D" + p + "d");
assertFalse(judge.judge(problem, playerAnswer));
}
@Test
public void judgeShouldReturnFalseIfResign() {
problem.answers = toArray("a", "b", "c", "d");
problem.choices = toArray("A", "B", "C", "D");
problem.shuffledAnswers = toArray("a", "b", "c", "d");
problem.shuffledChoices = toArray("A", "B", "C", "D");
String p = Constant.DELIMITER_KUMIAWASE_PAIR;
String l = Constant.DELIMITER_GENERAL;
String playerAnswer = Joiner.on(l).join("A" + p + "a", "B" + p + "b", "C" + p + "c");
assertFalse(judge.judge(problem, playerAnswer));
}
@Test
public void judgeShouldReturnTrueForThreeChoices() {
problem.answers = toArray("a", "b", "c");
problem.choices = toArray("A", "B", "C");
problem.shuffledAnswers = toArray("a", "b", "c");
problem.shuffledChoices = toArray("A", "B", "C");
String p = Constant.DELIMITER_KUMIAWASE_PAIR;
String l = Constant.DELIMITER_GENERAL;
String playerAnswer = Joiner.on(l).join("B" + p + "b", "C" + p + "c", "A" + p + "a");
assertTrue(judge.judge(problem, playerAnswer));
}
@Test
public void judgeShouldReturnTrueForEightChoices() {
problem.answers = toArray("a", "b", "c", "d", "e", "f", "g", "h");
problem.choices = toArray("A", "B", "C", "D", "E", "F", "G", "H");
problem.shuffledAnswers = toArray("e", "f", "g", "h");
problem.shuffledChoices = toArray("E", "F", "G", "H");
String p = Constant.DELIMITER_KUMIAWASE_PAIR;
String l = Constant.DELIMITER_GENERAL;
String playerAnswer = Joiner.on(l).join("E" + p + "e", "F" + p + "f", "G" + p + "g",
"H" + p + "h");
assertTrue(judge.judge(problem, playerAnswer));
}
@Test
public void judgeShouldReturnFalseForPrefixCollition() {
problem.answers = toArray("a", "aa", "aaa", "aaaa", "aaaaa", "aaaaaa", "aaaaaaa",
"aaaaaaaa");
problem.choices = toArray("A", "B", "C", "D", "E", "F", "G", "H");
problem.shuffledAnswers = toArray("a", "aa", "aaa", "aaaa");
problem.shuffledChoices = toArray("A", "B", "C", "D");
String p = Constant.DELIMITER_KUMIAWASE_PAIR;
String l = Constant.DELIMITER_GENERAL;
String playerAnswer = Joiner.on(l).join("A" + p + "aaaaa", "B" + p + "aaaaa",
"C" + p + "aaaa", "D" + p + "aaaa");
assertFalse(judge.judge(problem, playerAnswer));
}
}