github.com/mithrandie/csvq@v1.18.1/lib/parser/lexer_test.go (about) 1 package parser 2 3 import "testing" 4 5 func TestToken_IsEmpty(t *testing.T) { 6 token := Token{} 7 if !token.IsEmpty() { 8 t.Error("Token.Empty() is false, want true for empty token") 9 } 10 } 11 12 func TestLexer_Error(t *testing.T) { 13 lexer := Lexer{ 14 token: Token{ 15 Token: SELECT, 16 Literal: "select", 17 }, 18 } 19 message := "syntax error" 20 21 expect := "syntax error: unexpected token \"select\"" 22 lexer.Error(message) 23 if lexer.err.Error() != expect { 24 t.Errorf("error message = %s, want %s for token %v", lexer.err.Error(), expect, lexer.token) 25 } 26 27 lexer = Lexer{ 28 token: Token{ 29 Token: AGGREGATE_FUNCTION, 30 Literal: "min", 31 }, 32 } 33 expect = "syntax error: unexpected token \"min\"" 34 lexer.Error(message) 35 if lexer.err.Error() != expect { 36 t.Errorf("error message = %s, want %s for token %v", lexer.err.Error(), expect, lexer.token) 37 } 38 39 lexer = Lexer{ 40 token: Token{ 41 Token: SUBSTITUTION_OP, 42 Literal: ":=", 43 }, 44 } 45 expect = "syntax error: unexpected token \":=\"" 46 lexer.Error(message) 47 if lexer.err.Error() != expect { 48 t.Errorf("error message = %s, want %s for token %v", lexer.err.Error(), expect, lexer.token) 49 } 50 51 lexer = Lexer{ 52 token: Token{ 53 Token: -1, 54 }, 55 } 56 expect = "syntax error: unexpected termination" 57 lexer.Error(message) 58 if lexer.err.Error() != expect { 59 t.Errorf("error message = %s, want %s for token %v", lexer.err.Error(), expect, lexer.token) 60 } 61 }