MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / TestTokenizer_Operators

Function TestTokenizer_Operators

pkg/sql/tokenizer/operators_test.go:23–99  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

21)
22
23func TestTokenizer_Operators(t *testing.T) {
24 tests := []struct {
25 input string
26 expected []struct {
27 tokenType models.TokenType
28 value string
29 }
30 }{
31 {
32 input: "a + b * c / d % e",
33 expected: []struct {
34 tokenType models.TokenType
35 value string
36 }{
37 {models.TokenTypeIdentifier, "a"},
38 {models.TokenTypePlus, "+"},
39 {models.TokenTypeIdentifier, "b"},
40 {models.TokenTypeMul, "*"},
41 {models.TokenTypeIdentifier, "c"},
42 {models.TokenTypeDiv, "/"},
43 {models.TokenTypeIdentifier, "d"},
44 {models.TokenTypeMod, "%"},
45 {models.TokenTypeIdentifier, "e"},
46 },
47 },
48 {
49 input: "x || y",
50 expected: []struct {
51 tokenType models.TokenType
52 value string
53 }{
54 {models.TokenTypeIdentifier, "x"},
55 {models.TokenTypeStringConcat, "||"},
56 {models.TokenTypeIdentifier, "y"},
57 },
58 },
59 {
60 input: "data->>'field'",
61 expected: []struct {
62 tokenType models.TokenType
63 value string
64 }{
65 {models.TokenTypeIdentifier, "data"},
66 {models.TokenTypeLongArrow, "->>"},
67 {models.TokenTypeSingleQuotedString, "field"},
68 },
69 },
70 }
71
72 for _, test := range tests {
73 tokenizer, err := New()
74 if err != nil {
75 t.Fatalf("New() error = %v", err)
76 }
77 tokens, err := tokenizer.Tokenize([]byte(test.input))
78 if err != nil {
79 t.Fatalf("Tokenize() error = %v", err)
80 }

Callers

nothing calls this directly

Calls 4

TokenizeMethod · 0.80
NewFunction · 0.70
FatalfMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected