channelmsg/channelmsg_test.go

71 lines
1.6 KiB
Go
Raw Normal View History

2025-05-07 22:58:29 -04:00
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)
}
}
}