MCPcopy
hub / github.com/kashav/fsql / TestParser_Expect

Function TestParser_Expect

parser/parser_test.go:267–349  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

265}
266
267func TestParser_Expect(t *testing.T) {
268 type Case struct {
269 param tokenizer.TokenType
270 expected *tokenizer.Token
271 }
272
273 input := "SELECT all FROM . WHERE name = foo OR size <> 100"
274 p := &parser{tokenizer: tokenizer.NewTokenizer(input)}
275
276 cases := []Case{
277 {
278 param: tokenizer.Select,
279 expected: &tokenizer.Token{Type: tokenizer.Select, Raw: "SELECT"},
280 },
281 {
282 param: tokenizer.From,
283 expected: nil,
284 },
285 {
286 param: tokenizer.Identifier,
287 expected: &tokenizer.Token{Type: tokenizer.Identifier, Raw: "all"},
288 },
289 {
290 param: tokenizer.Identifier,
291 expected: nil,
292 },
293 {
294 param: tokenizer.From,
295 expected: &tokenizer.Token{Type: tokenizer.From, Raw: "FROM"},
296 },
297 {
298 param: tokenizer.Identifier,
299 expected: &tokenizer.Token{Type: tokenizer.Identifier, Raw: "."},
300 },
301 {
302 param: tokenizer.Identifier,
303 expected: nil,
304 },
305 {
306 param: tokenizer.Where,
307 expected: &tokenizer.Token{Type: tokenizer.Where, Raw: "WHERE"},
308 },
309 {
310 param: tokenizer.Identifier,
311 expected: &tokenizer.Token{Type: tokenizer.Identifier, Raw: "name"},
312 },
313 {
314 param: tokenizer.Equals,
315 expected: &tokenizer.Token{Type: tokenizer.Equals, Raw: "="},
316 },
317 {
318 param: tokenizer.Identifier,
319 expected: &tokenizer.Token{Type: tokenizer.Identifier, Raw: "foo"},
320 },
321 {
322 param: tokenizer.Or,
323 expected: &tokenizer.Token{Type: tokenizer.Or, Raw: "OR"},
324 },

Callers

nothing calls this directly

Calls 2

expectMethod · 0.95
NewTokenizerFunction · 0.92

Tested by

no test coverage detected