package test.ql.typechecker.literal; import java.util.Arrays; import java.util.Collection; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import test.ql.typechecker.BaseTest; @RunWith(value = Parameterized.class) public class TestIntegerLiteral extends BaseTest { public static String createTestForm(String questionType) { return "form myForm { " + "newQuestion : " + questionType + " { \"Number\" }" + "secondQuestion : integer { \"Number\" assign(newQuestion) }" + "}"; } @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { // Integer. { "aQuestion : integer { \"Integer\" assign(42) }", true}, // Float. { "aQuestion : integer { \"Float\" assign(10.1) }", true}, // Strings. { "aQuestion : integer { \"String\" assign(\"Waddap\") }", false}, // Booleans. { "aQuestion : integer { \"Boolean\" assign(true) }", false}, // Identifiers pointing to a integer. { createTestForm("integer"), true}, // Identifiers pointing to a float. { createTestForm("float"), true}, { createTestForm("money"), true}, // Identifier pointing to a string. { createTestForm("string"), false}, // Identifier pointing to a boolean. { createTestForm("boolean"), false}, }); } public TestIntegerLiteral(String input, boolean expected) { super(input, expected); } }