71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
|
package channelmsg
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
type ChannelMessageTestStruct struct {
|
||
|
Message Message
|
||
|
Chatter bool
|
||
|
Anonymous bool
|
||
|
}
|
||
|
|
||
|
var (
|
||
|
TheTestMessages = map[string]ChannelMessageTestStruct{
|
||
|
"": ChannelMessageTestStruct{
|
||
|
Chatter: true,
|
||
|
Anonymous: true,
|
||
|
},
|
||
|
"<cmsg ch='0'>hello channel messages</cmsg>": ChannelMessageTestStruct{
|
||
|
Message: Message{
|
||
|
Dialect: "cmsg",
|
||
|
Channel: "0",
|
||
|
Message: "hello channel messages",
|
||
|
ClosesChannel: false,
|
||
|
},
|
||
|
Chatter: false,
|
||
|
Anonymous: false,
|
||
|
},
|
||
|
"<cmsg ch='0' />": ChannelMessageTestStruct{
|
||
|
Message: Message{
|
||
|
Dialect: "cmsg",
|
||
|
Channel: "0",
|
||
|
ClosesChannel: true,
|
||
|
},
|
||
|
Chatter: false,
|
||
|
Anonymous: false,
|
||
|
},
|
||
|
"<cmsg>status</cmsg>": ChannelMessageTestStruct{
|
||
|
Message: Message{
|
||
|
Dialect: "cmsg",
|
||
|
Message: "status",
|
||
|
ClosesChannel: false,
|
||
|
},
|
||
|
Chatter: false,
|
||
|
Anonymous: true,
|
||
|
},
|
||
|
}
|
||
|
)
|
||
|
|
||
|
func TestMain(m *testing.M) {
|
||
|
LogDebugOutput = true
|
||
|
XmlAttributeEnclosingQuote = "'"
|
||
|
os.Exit(m.Run())
|
||
|
}
|
||
|
|
||
|
func TestParse(t *testing.T) {
|
||
|
for s, want := range TheTestMessages {
|
||
|
got := Parse(s)
|
||
|
if !want.Message.IsEqual(got) {
|
||
|
t.Fatalf("error parsing %s: wanted %+v; got %+v\n", s, want.Message, got)
|
||
|
} else if want.Anonymous != got.Anonymous() {
|
||
|
t.Fatalf("error parsing %s: wanted anonymous == %v; got %v\n", s, want.Anonymous, got.Anonymous())
|
||
|
} else if want.Chatter != got.Chatter() {
|
||
|
t.Fatalf("error parsing %s: wanted chatter == %v; got %v\n", s, want.Chatter, got.Chatter())
|
||
|
} else if want, got := s, got.String(); want != got {
|
||
|
t.Fatalf("error: wanted '%s'; got '%s'\n", want, got)
|
||
|
}
|
||
|
}
|
||
|
}
|