(t *testing.T)
| 265 | } |
| 266 | |
| 267 | func 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 | }, |
nothing calls this directly
no test coverage detected