#include #include #include "PrintTo_Qt.h" #include "sqlparser/Parser.h" using namespace testing; using namespace sqlast; TEST(NewSqlParser, statementList) { std::string input_string = "SEleCT 1; Select 2;"; Parser parser(input_string); std::unique_ptr program = parser.Parse(); ASSERT_TRUE(program != nullptr); ASSERT_EQ(2, program->Count()); } TEST(NewSqlParser, missingSemi) { std::string input_string = "1"; Parser parser(input_string); std::unique_ptr program = parser.Parse(); ASSERT_EQ(1, parser.errorCount()); } TEST(NewSqlParser, selectList) { std::string input_string = "SEleCT 1, 'Tekst'"; Parser parser(input_string); std::unique_ptr program = parser.Parse(); ASSERT_TRUE(program != nullptr); ASSERT_EQ(1, program->Count()); SelectStatement &s = dynamic_cast(program->Get(0)); SelectList* sl = s.GetSelectList(); ASSERT_TRUE(sl != nullptr); ASSERT_EQ(2, sl->Count()); SelectItem& si = sl->Get(1); StringLiteral& string_literal = dynamic_cast(si.GetExpression()); ASSERT_EQ("Tekst", string_literal.GetValue()); }