#include #include #include "SqlLexer.h" using namespace testing; TEST(SqlLexer, lexer) { QString input = " SELECT "; SqlLexer lexer(input, LexerState::Null); int startpos, length; BasicTokenType tokentype; QString out; lexer.nextBasicToken(startpos, length, tokentype, out); ASSERT_THAT(startpos, Eq(1)); ASSERT_THAT(length, Eq(6)); ASSERT_THAT(tokentype, Eq(BasicTokenType::Symbol)); ASSERT_THAT( out, Eq(QString("SELECT")) ); } TEST(SqlLexer, lexer_quote_in_string) { QString input = " 'abc''def' "; SqlLexer lexer(input, LexerState::Null); int startpos, length; BasicTokenType tokentype; QString out; lexer.nextBasicToken(startpos, length, tokentype, out); ASSERT_THAT(startpos, Eq(1)); ASSERT_THAT(length, Eq(10)); ASSERT_THAT(tokentype, Eq(BasicTokenType::QuotedString)); }