Throw more test cases at the message parser, fix edge case

This commit is contained in:
Ken-Håvard Lieng 2018-04-27 02:56:35 +02:00
parent b4bdcd4939
commit f72253966b
2 changed files with 27 additions and 3 deletions

View File

@ -49,11 +49,11 @@ func parseMessage(line string) *Message {
trailing = line[i+2:]
}
cmd := strings.Split(line[cmdStart:cmdEnd], " ")
msg.Command = cmd[0]
if msg.Command == "" {
cmd := strings.Fields(line[cmdStart:cmdEnd])
if len(cmd) == 0 {
return nil
}
msg.Command = cmd[0]
if len(cmd) > 1 {
msg.Params = cmd[1:]

View File

@ -76,6 +76,30 @@ func TestParseMessage(t *testing.T) {
Command: "CMD",
Params: []string{"#cake", "pie"},
},
}, {
"CMD #cake ::pie\r\n",
&Message{
Command: "CMD",
Params: []string{"#cake", ":pie"},
},
}, {
"CMD #cake : pie\r\n",
&Message{
Command: "CMD",
Params: []string{"#cake", " pie"},
},
}, {
"CMD #cake :pie :P <3\r\n",
&Message{
Command: "CMD",
Params: []string{"#cake", "pie :P <3"},
},
}, {
"CMD #cake :pie!\r\n",
&Message{
Command: "CMD",
Params: []string{"#cake", "pie!"},
},
},
}