Mirror of github.com/gissleh/irc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.0 KiB

  1. package irc_test
  2. import (
  3. "github.com/gissleh/irc"
  4. "github.com/stretchr/testify/assert"
  5. "testing"
  6. )
  7. type packetTestRow struct {
  8. Data string
  9. Kind string
  10. Verb string
  11. Args []string
  12. Text string
  13. Tags map[string]string
  14. }
  15. var packetTestTable = []packetTestRow{
  16. {":test.server PING Test", "packet", "PING", []string{"Test"}, "", map[string]string{}},
  17. {":test.server PING :Test", "packet", "PING", []string{}, "Test", map[string]string{}},
  18. {":Test2!test@test.example.com PRIVMSG Tester :\x01ACTION hello to you.\x01", "ctcp", "ACTION", []string{"Tester"}, "hello to you.", map[string]string{}},
  19. }
  20. func TestParsePacket(t *testing.T) {
  21. for _, row := range packetTestTable {
  22. t.Run(row.Data, func(t *testing.T) {
  23. event, err := irc.ParsePacket(row.Data)
  24. if err != nil {
  25. t.Error("Parse Failed", err)
  26. return
  27. }
  28. assert.Equal(t, row.Kind, event.Kind(), "kind")
  29. assert.Equal(t, row.Verb, event.Verb(), "kind")
  30. assert.Equal(t, row.Args, event.Args, "kind")
  31. assert.Equal(t, row.Text, event.Text, "kind")
  32. })
  33. }
  34. }