Files
lysenko/handlers/ignore/ignore_test.go

47 lines
1.1 KiB
Go
Raw Normal View History

2016-07-05 02:35:33 +01:00
package ignore_test
import (
"regexp"
"testing"
"github.com/tcolgate/hugot"
"golang.org/x/net/context"
"ur.gs/lysenko/handlers/ignore"
)
type DummyHearsHandler struct {
Called bool
}
func (h *DummyHearsHandler) Describe() (string, string) {
return "", ""
}
func (h *DummyHearsHandler) Hears() *regexp.Regexp {
return regexp.MustCompile(``)
}
func (h *DummyHearsHandler) Heard(ctx context.Context, w hugot.ResponseWriter, m *hugot.Message, submatches [][]string) {
h.Called = true
}
func TestIgnoreHearsPassesOKNick(t *testing.T) {
msg := hugot.Message{}
dummy := &DummyHearsHandler{}
ignorer := ignore.NewHears([]string{"foo"}, dummy)
ignorer.Heard(context.TODO(), hugot.NewNullResponseWriter(msg), &msg, [][]string{})
if !dummy.Called {
t.Fatal("Dummy not called when it should have been")
}
}
func TestIgnoreHearsBlocksBadNick(t *testing.T) {
msg := hugot.Message{From: "foo"}
dummy := &DummyHearsHandler{}
ignorer := ignore.NewHears([]string{"foo"}, dummy)
ignorer.Heard(context.TODO(), hugot.NewNullResponseWriter(msg), &msg, [][]string{})
if dummy.Called {
t.Fatal("Dummy called when it shouldn't have been")
}
}