package matchparser import ( "config-lsp/common" "testing" ) func TestFullExample( t *testing.T, ) { input := "User alice,adam Address 192.168.1.1 Host *.example.com" match := NewMatch() errs := match.Parse(input, 0, 0) if len(errs) > 0 { t.Fatalf("Failed to parse match: %v", errs) } entry := match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(0)) if !(entry == match.Entries[0]) { t.Errorf("Expected entry at 0 to be %v, but got %v", match.Entries[0], entry) } entry = match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(5)) if !(entry == match.Entries[0]) { t.Errorf("Expected entry at 5 to be %v, but got %v", match.Entries[0], entry) } entry = match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(13)) if !(entry == match.Entries[0]) { t.Errorf("Expected entry at 13 to be %v, but got %v", match.Entries[1], entry) } entry = match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(16)) if !(entry == match.Entries[1]) { t.Errorf("Expected entry at 16 to be %v, but got %v", match.Entries[1], entry) } entry = match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(24)) if !(entry == match.Entries[1]) { t.Errorf("Expected entry at 24 to be %v, but got %v", match.Entries[2], entry) } entry = match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(36)) if !(entry == match.Entries[2]) { t.Errorf("Expected entry at 36 to be %v, but got %v", match.Entries[2], entry) } } func TestGetEntryForIncompleteExample( t *testing.T, ) { input := "User " match := NewMatch() errs := match.Parse(input, 0, 0) if len(errs) > 0 { t.Fatalf("Failed to parse match: %v", errs) } entry := match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(0)) if !(entry == match.Entries[0]) { t.Errorf("Expected entry at 0 to be %v, but got %v", match.Entries[0], entry) } entry = match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(4)) if !(entry == match.Entries[0]) { t.Errorf("Expected entry at 4 to be %v, but got %v", match.Entries[0], entry) } entry = match.GetEntryAtPosition(common.LSPCharacterAsCursorPosition(5)) if !(entry == match.Entries[0]) { t.Errorf("Expected entry at 5 to be %v, but got %v", match.Entries[0], entry) } }