package org.teachingkidsprogramming.recipes.quizzes.tests; import org.junit.Test; import org.teachingextensions.approvals.lite.reporters.DelayedClipboardReporter; import org.teachingextensions.approvals.lite.reporters.DiffReporter; import org.teachingextensions.approvals.lite.reporters.UseReporter; import org.teachingextensions.approvals.lite.util.JUnitUtils; import org.teachingextensions.logo.Turtle; import org.teachingextensions.logo.utils.TortoiseUtils; import org.teachingextensions.logo.utils.MVCUtils.Parser; import org.teachingkidsprogramming.recipes.quizzes.graders.AdLibsQuizAdapter; import org.teachingkidsprogramming.recipes.quizzes.graders.AdLibsQuizGrader; import org.teachingkidsprogramming.recipes.quizzes.graders.TreeQuizGrader; @UseReporter({DelayedClipboardReporter.class, DiffReporter.class}) public class SimpleBubbleQuizTest { public static class AdLibsCorrectQuiz extends AdLibsQuizAdapter { @Override public void question1(String letter1, String letter3) { //set current value of word1 to be letter1 + 'o' + letter3 word1 = letter1 + "o" + letter3; } @Override public void question2(String letter1) { //add the letter1 to the end of word2 word2 += letter1; } @Override public void question3(String templateText, Object model) { //use the parser to combine the template and the model as word3 word3 = Parser.parse(templateText, model); } @Override public void question4(Pieces pieces) { //set template4 to the template which does'g' + pieces.middle + 'e' template4 = "g{middle}e"; } } @Test public void testCorrect() throws Exception { JUnitUtils.assumeNotHeadless(); TreeQuizGrader.TURTLE_SPEED = Turtle.TEST_SPEED; new AdLibsQuizGrader().grade(new AdLibsCorrectQuiz()); TortoiseUtils.verifyForOs(); } public static class AdLibsIncorrectQuiz extends AdLibsQuizAdapter { @Override public void question1(String letter1, String letter3) { } @Override public void question2(String letter1) { } @Override public void question3(String templateText, Object model) { } @Override public void question4(Pieces pieces) { } } @Test public void testIncorrect() throws Exception { JUnitUtils.assumeNotHeadless(); TreeQuizGrader.TURTLE_SPEED = Turtle.TEST_SPEED; new AdLibsQuizGrader().grade(new AdLibsIncorrectQuiz()); TortoiseUtils.verifyForOs(); } }