package channelmsg import ( "os" "testing" ) type ChannelMessageTestStruct struct { Message Message Chatter bool Anonymous bool } var ( TheTestMessages = map[string]ChannelMessageTestStruct{ "": ChannelMessageTestStruct{ Chatter: true, Anonymous: true, }, "hello channel messages": ChannelMessageTestStruct{ Message: Message{ Dialect: "cmsg", Channel: "0", Message: "hello channel messages", ClosesChannel: false, }, Chatter: false, Anonymous: false, }, "": ChannelMessageTestStruct{ Message: Message{ Dialect: "cmsg", Channel: "0", ClosesChannel: true, }, Chatter: false, Anonymous: false, }, "status": 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) } } }