public void TestParseEmptyString() { // Arrange var controller = new QLController(); string ql = String.Empty; // An empty string is also valid QL code. // Act var form = controller.ParseQLString(ql); // Assert Assert.IsNotNull(form, "Method ParseQLString should never return a null value."); Assert.AreEqual <int>(0, form.Statements.Count()); }
public void TestParseEmptyString() { // Arrange var controller = new QLController(); string ql = String.Empty; // An empty string is also valid QL code. // Act var form = controller.ParseQLString(ql); // Assert Assert.IsNotNull(form, "Method ParseQLString should never return a null value."); Assert.AreEqual<int>(0, form.Statements.Count()); }
public void TestStringConcationation() { // Arrange var controller = new QLController(); var form = controller.ParseQLString("name = \"What's your name?\" string = \"Piet\" + \"Jansen\""); var typeChecker = new TypeChecker(); var report = new ValidationReport(); // Act typeChecker.Validate(form, report); // Assert Assert.AreEqual<int>(0, report.NrOfErrors); }
public void TestStringConcationation() { // Arrange var controller = new QLController(); var form = controller.ParseQLString("name = \"What's your name?\" string = \"Piet\" + \"Jansen\""); var typeChecker = new TypeChecker(); var report = new ValidationReport(); // Act typeChecker.Validate(form, report); // Assert Assert.AreEqual <int>(0, report.NrOfErrors); }
public void TestParseQuestion() { // Arrange var controller = new QLController(); string ql = "FavoriteColor \"What is your favorite color?\" string"; // Act var form = controller.ParseQLString(ql); // Assert Assert.IsNotNull(form, "Method ParseQLString should never return a null value."); Assert.AreEqual<int>(1, form.Statements.Count()); var question = form.Statements.First() as Question; Assert.AreEqual<string>("What is your favorite color?", question.Label); Assert.AreEqual<string>("FavoriteColor", question.Id.Name); Assert.AreEqual<DataType>(DataType.String, question.DataType); }
public void TestParseIfStatement() { // Arrange var controller = new QLController(); string ql = "if(hasSoldHouse && boughtNew) { int sellingPrice = 0 }"; // Act var form = controller.ParseQLString(ql); // Assert Assert.IsNotNull(form, "Method ParseQLString should never return a null value."); Assert.AreEqual<int>(1, form.Statements.Count()); Assert.IsInstanceOfType(form.Statements.First(), typeof(IfStatement)); var ifStatement = form.Statements.First() as IfStatement; Assert.AreEqual<int>(1, ifStatement.Then.Count()); Assert.AreEqual<int>(0, ifStatement.Else.Count()); }
public void TestParseIfElseStatement() { // Arrange var controller = new QLController(); string ql = "if(hasSoldHouse && boughtNew) { int sellingPrice = 0 } else { int askingPrice = 0 }"; // Act var form = controller.ParseQLString(ql); // Assert Assert.IsNotNull(form, "Method ParseQLString should never return a null value."); Assert.AreEqual <int>(1, form.Statements.Count()); Assert.IsInstanceOfType(form.Statements.First(), typeof(IfStatement)); var ifStatement = form.Statements.First() as IfStatement; Assert.AreEqual <int>(1, ifStatement.Then.Count()); Assert.AreEqual <int>(1, ifStatement.Else.Count()); }
public void TestParseQuestion() { // Arrange var controller = new QLController(); string ql = "FavoriteColor \"What is your favorite color?\" string"; // Act var form = controller.ParseQLString(ql); // Assert Assert.IsNotNull(form, "Method ParseQLString should never return a null value."); Assert.AreEqual <int>(1, form.Statements.Count()); var question = form.Statements.First() as Question; Assert.AreEqual <string>("What is your favorite color?", question.Label); Assert.AreEqual <string>("FavoriteColor", question.Id.Name); Assert.AreEqual <DataType>(DataType.String, question.DataType); }
public void TestInvalidInteger() { // Arrange var ql = new StringBuilder(); ql.AppendLine("int someInt = 8374398748349837489274"); // An integer value that well surpasses the 32-bit range. var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var checker = new LiteralChecker(); var report = new ValidationReport(); // Act checker.Validate(form, report); // Assert Assert.AreEqual<int>(1, report.NrOfErrors); }
public void TestNegatedIfStatement() { // Arrange var ql = new StringBuilder(); ql.AppendLine("isHappy \"Are you happy?\" bool"); ql.AppendLine("if(!isHappy)"); ql.AppendLine("{ }"); var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var typeChecker = new TypeChecker(); var report = new ValidationReport(); // Act typeChecker.Validate(form, report); // Assert Assert.AreEqual<int>(0, report.NrOfErrors); }
public void TestInvalidInteger() { // Arrange var ql = new StringBuilder(); ql.AppendLine("int someInt = 8374398748349837489274"); // An integer value that well surpasses the 32-bit range. var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var checker = new LiteralChecker(); var report = new ValidationReport(); // Act checker.Validate(form, report); // Assert Assert.AreEqual <int>(1, report.NrOfErrors); }
public void TestInvalidDates() { // Arrange var ql = new StringBuilder(); ql.AppendLine("date someDateA = [1-31-2015]"); ql.AppendLine("date someDateB = [30-02-2015]"); var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var checker = new LiteralChecker(); var report = new ValidationReport(); // Act checker.Validate(form, report); // Assert Assert.AreEqual<int>(2, report.NrOfErrors); }
public void TestInvalidDates() { // Arrange var ql = new StringBuilder(); ql.AppendLine("date someDateA = [1-31-2015]"); ql.AppendLine("date someDateB = [30-02-2015]"); var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var checker = new LiteralChecker(); var report = new ValidationReport(); // Act checker.Validate(form, report); // Assert Assert.AreEqual <int>(2, report.NrOfErrors); }
public void TestNegatedIfStatement() { // Arrange var ql = new StringBuilder(); ql.AppendLine("isHappy \"Are you happy?\" bool"); ql.AppendLine("if(!isHappy)"); ql.AppendLine("{ }"); var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var typeChecker = new TypeChecker(); var report = new ValidationReport(); // Act typeChecker.Validate(form, report); // Assert Assert.AreEqual <int>(0, report.NrOfErrors); }
public void TestValidDates() { // Arrange var ql = new StringBuilder(); ql.AppendLine("date someDateA = [31-1-2015]"); ql.AppendLine("date someDateB = [01-01-2015]"); ql.AppendLine("date someDateC = [5-06-1920]"); ql.AppendLine("date someDateD = [today]"); ql.AppendLine("date someDateE = [yesterday]"); ql.AppendLine("date someDateF = [tomorrow]"); var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var checker = new LiteralChecker(); var report = new ValidationReport(); // Act checker.Validate(form, report); // Assert Assert.AreEqual<int>(0, report.NrOfErrors + report.NrOfWarnings); }
public void TestValidDates() { // Arrange var ql = new StringBuilder(); ql.AppendLine("date someDateA = [31-1-2015]"); ql.AppendLine("date someDateB = [01-01-2015]"); ql.AppendLine("date someDateC = [5-06-1920]"); ql.AppendLine("date someDateD = [today]"); ql.AppendLine("date someDateE = [yesterday]"); ql.AppendLine("date someDateF = [tomorrow]"); var controller = new QLController(); var form = controller.ParseQLString(ql.ToString()); var checker = new LiteralChecker(); var report = new ValidationReport(); // Act checker.Validate(form, report); // Assert Assert.AreEqual <int>(0, report.NrOfErrors + report.NrOfWarnings); }