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

Function TestKeywords_AddKeyword

pkg/sql/keywords/keywords_test.go:355–403  ·  view source on GitHub ↗

TestKeywords_AddKeyword tests the AddKeyword method

(t *testing.T)

Source from the content-addressed store, hash-verified

353
354// TestKeywords_AddKeyword tests the AddKeyword method
355func TestKeywords_AddKeyword(t *testing.T) {
356 k := New(DialectGeneric, true)
357
358 // Test adding a new keyword
359 newKeyword := Keyword{
360 Word: "CUSTOMKEYWORD",
361 Type: models.TokenTypeKeyword,
362 Reserved: true,
363 ReservedForTableAlias: false,
364 }
365 err := k.AddKeyword(newKeyword)
366 if err != nil {
367 t.Errorf("AddKeyword() failed: %v", err)
368 }
369
370 // Verify the keyword was added
371 if !k.IsKeyword("CUSTOMKEYWORD") {
372 t.Error("Added keyword not found via IsKeyword")
373 }
374 if !k.IsReserved("CUSTOMKEYWORD") {
375 t.Error("Added keyword should be reserved")
376 }
377
378 // Test case insensitivity
379 if !k.IsKeyword("customkeyword") {
380 t.Error("Added keyword should be case-insensitive")
381 }
382
383 // Test adding a duplicate keyword (should fail)
384 err = k.AddKeyword(newKeyword)
385 if err == nil {
386 t.Error("AddKeyword() should fail when adding duplicate keyword")
387 }
388
389 // Test adding non-reserved keyword
390 nonReservedKeyword := Keyword{
391 Word: "NONRESERVED",
392 Type: models.TokenTypeKeyword,
393 Reserved: false,
394 ReservedForTableAlias: false,
395 }
396 err = k.AddKeyword(nonReservedKeyword)
397 if err != nil {
398 t.Errorf("AddKeyword() failed for non-reserved keyword: %v", err)
399 }
400 if k.IsReserved("NONRESERVED") {
401 t.Error("Non-reserved keyword should not be in reservedKeywords map")
402 }
403}
404
405// TestKeywords_DialectSpecific tests dialect-specific keyword loading
406func TestKeywords_DialectSpecific(t *testing.T) {

Callers

nothing calls this directly

Calls 6

AddKeywordMethod · 0.80
IsReservedMethod · 0.80
NewFunction · 0.70
ErrorfMethod · 0.65
IsKeywordMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected