1package bot
2
3import "testing"
4
5func TestParseCommandCaseInsensitive(t *testing.T) {
6 tests := []struct {
7 text string
8 want Command
9 ok bool
10 }{
11 {text: "/start", want: CmdStart, ok: true},
12 {text: " /HELP ", want: CmdHelp, ok: true},
13 {text: "/Status", want: CmdStatus, ok: true},
14 {text: "/STOP", want: CmdStop, ok: true},
15 {text: "/stop please", want: CmdStop, ok: true},
16 {text: "status", ok: false},
17 {text: "", ok: false},
18 }
19 for _, tt := range tests {
20 got, ok := ParseCommand(tt.text)
21 if ok != tt.ok || ok && got != tt.want {
22 t.Errorf("ParseCommand(%q) = (%v, %v), want (%v, %v)", tt.text, got, ok, tt.want, tt.ok)
23 }
24 }
25}
26
27func TestIsStopCommand(t *testing.T) {
28 for _, text := range []string{"stop", " STOP ", "Stop"} {
29 if !IsStopCommand(text) {
30 t.Errorf("IsStopCommand(%q) = false", text)
31 }
32 }
33 for _, text := range []string{"/stop", "stop please", "please stop", ""} {
34 if IsStopCommand(text) {
35 t.Errorf("IsStopCommand(%q) = true", text)
36 }
37 }
38}