package tv.dyndns.kishibe.qmaclone.client.creation; import java.util.Date; import org.junit.Test; import tv.dyndns.kishibe.qmaclone.client.QMACloneGWTTestCaseBase; import tv.dyndns.kishibe.qmaclone.client.game.ProblemGenre; import tv.dyndns.kishibe.qmaclone.client.game.ProblemType; import tv.dyndns.kishibe.qmaclone.client.game.RandomFlag; import tv.dyndns.kishibe.qmaclone.client.packet.PacketProblem; public class WidgetProblemFormTest extends QMACloneGWTTestCaseBase { private static final String INDICATION_MESSAGE = "indication message"; private WidgetProblemForm form; private PacketProblem problem; @Override protected void gwtSetUp() throws Exception { super.gwtSetUp(); form = new WidgetProblemForm( new CreationUi(new WrongAnswerPresenter(new WrongAnswerViewImpl()))); problem = new PacketProblem(); problem.id = 123456; problem.genre = ProblemGenre.Gakumon; problem.type = ProblemType.Senmusubi; problem.good = 123; problem.bad = 234; problem.randomFlag = RandomFlag.Random2; problem.creatorHash = 345; problem.userCode = 12345678; problem.sentence = "sentence"; problem.answers = new String[] { "A", "B", "C", "D" }; problem.choices = new String[] { "a", "b", "c", "d" }; problem.creator = "creator"; problem.note = "note"; problem.shuffledAnswers = new String[] { "D", "C", "B", "A" }; problem.shuffledChoices = new String[] { "d", "c", "b", "a" }; problem.imageAnswer = false; problem.imageChoice = false; problem.voteGood = 0; problem.voteBad = 0; problem.imageUrl = "http://hoge"; problem.movieUrl = "http://fuga"; problem.indication = new Date(123456789L); problem.indicationMessage = INDICATION_MESSAGE; problem.numberOfDisplayedChoices = 3; } @Test public void testSetGetProblemWithCopy() { problem.indication = new Date(); problem.indicationResolved = new Date(); form.setProblem(problem.cloneForCopyingProblem()); PacketProblem p = form.getProblem(); assertEquals(-1, p.id); assertEquals(problem.genre, p.genre); assertEquals(problem.type, p.type); assertEquals(0, p.good); assertEquals(0, p.bad); assertEquals(problem.randomFlag, p.randomFlag); // assertEquals(problem.creatorHash, p.creatorHash); // assertEquals(problem.userCode, p.userCode); assertEquals(problem.sentence, p.sentence); assertEquals(problem.answers[0], p.answers[0]); assertEquals(problem.answers[1], p.answers[1]); assertEquals(problem.answers[2], p.answers[2]); assertEquals(problem.answers[3], p.answers[3]); assertEquals(problem.choices[0], p.choices[0]); assertEquals(problem.choices[1], p.choices[1]); assertEquals(problem.choices[2], p.choices[2]); assertEquals(problem.choices[3], p.choices[3]); assertEquals("未初期化です", p.creator); assertEquals(problem.note, p.note); assertEquals(problem.imageAnswer, p.imageAnswer); assertEquals(problem.imageChoice, p.imageChoice); assertEquals(0, p.voteGood); assertEquals(0, p.voteBad); // assertEquals(problem.imageUrl, p.imageUrl); // assertEquals(problem.movieUrl, p.movieUrl); // BugTrack-QMAClone/595 - QMAClone wiki // http://kishibe.dyndns.tv/qmaclone/wiki/wiki.cgi?page=BugTrack%2DQMAClone%2F595 assertNull(p.indication); assertNull(p.indicationResolved); // assertEquals(problem.indicationMessage, p.indicationMessage); assertTrue(form.htmlPlusOne.getHTML().isEmpty()); } @Test public void testSetGetProblemWithoutCopy() { form.setProblem(problem); PacketProblem p = form.getProblem(); assertEquals(problem.id, p.id); assertEquals(problem.genre, p.genre); assertEquals(problem.type, p.type); assertEquals(problem.good, p.good); assertEquals(problem.bad, p.bad); assertEquals(problem.randomFlag, p.randomFlag); // assertEquals(problem.creatorHash, p.creatorHash); // assertEquals(problem.userCode, p.userCode); assertEquals(problem.sentence, p.sentence); assertEquals(problem.answers[0], p.answers[0]); assertEquals(problem.answers[1], p.answers[1]); assertEquals(problem.answers[2], p.answers[2]); assertEquals(problem.answers[3], p.answers[3]); assertEquals(problem.choices[0], p.choices[0]); assertEquals(problem.choices[1], p.choices[1]); assertEquals(problem.choices[2], p.choices[2]); assertEquals(problem.choices[3], p.choices[3]); assertEquals(problem.creator, p.creator); assertEquals(problem.note, p.note); assertEquals(problem.imageAnswer, p.imageAnswer); assertEquals(problem.imageChoice, p.imageChoice); assertEquals(problem.voteGood, p.voteGood); assertEquals(problem.voteBad, p.voteBad); // assertEquals(problem.imageUrl, p.imageUrl); // assertEquals(problem.movieUrl, p.movieUrl); assertEquals(problem.indication, p.indication); // assertEquals(problem.indicationMessage, p.indicationMessage); assertFalse(form.htmlPlusOne.getHTML().isEmpty()); } @Test public void testGetProblemShouldReturnWithIndicationIfNotChecked() { Date date = new Date(); problem.indication = date; form.setProblem(problem); form.checkBoxUnindicate.setValue(false); PacketProblem p = form.getProblem(); assertEquals(date, p.indication); assertNull(p.indicationResolved); } @Test public void testGetProblemShouldReturnWithIndicationResolvedIfChecked() { Date date = new Date(); problem.indication = date; form.setProblem(problem); form.checkBoxUnindicate.setValue(true); PacketProblem p = form.getProblem(); assertNull(p.indication); assertEquals(-1, p.indicationResolved.compareTo(new Date(System.currentTimeMillis() + 10 * 1000))); } @Test public void testGetProblemShouldReturnWithIndicationResolvedIfSet() { Date date = new Date(); problem.indication = null; problem.indicationResolved = date; form.setProblem(problem); form.checkBoxUnindicate.setValue(false); PacketProblem p = form.getProblem(); assertEquals(date, p.indicationResolved); } }