1package bdiscord 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7) 8 9func TestEnumerateUsernames(t *testing.T) { 10 testcases := map[string]struct { 11 match string 12 expectedUsernames []string 13 }{ 14 "only space": { 15 match: " \t\n \t", 16 expectedUsernames: nil, 17 }, 18 "single word": { 19 match: "veni", 20 expectedUsernames: []string{"veni"}, 21 }, 22 "single word with preceeding space": { 23 match: " vidi", 24 expectedUsernames: []string{" vidi"}, 25 }, 26 "single word with suffixed space": { 27 match: "vici ", 28 expectedUsernames: []string{"vici"}, 29 }, 30 "multi-word with varying whitespace": { 31 match: "just me and\tmy friends \t", 32 expectedUsernames: []string{ 33 "just", 34 "just me", 35 "just me and", 36 "just me and\tmy", 37 "just me and\tmy friends", 38 }, 39 }, 40 } 41 42 for testname, testcase := range testcases { 43 foundUsernames := enumerateUsernames(testcase.match) 44 assert.Equalf(t, testcase.expectedUsernames, foundUsernames, "Should have found the expected usernames for testcase %s", testname) 45 } 46} 47