Added ClearCallback method for clearing all callbacks for an event

This commit is contained in:
Andrew Montgomery-Hurrell
2014-02-11 23:57:08 +00:00
parent 6edb7ec06e
commit bf01c6c9e2
2 changed files with 38 additions and 0 deletions

View File

@@ -94,3 +94,29 @@ func TestWildcardCallback(t *testing.T) {
t.Error("Wildcard callback not called")
}
}
func TestClearCallback(t *testing.T) {
irccon := IRC("go-eventirc", "go-eventirc")
irccon.VerboseCallbackHandler = true
done := make(chan int, 10)
irccon.AddCallback("TEST", func(e *Event) { done <- 0 })
irccon.AddCallback("TEST", func(e *Event) { done <- 1 })
irccon.ClearCallback("TEST")
irccon.AddCallback("TEST", func(e *Event) { done <- 2 })
irccon.AddCallback("TEST", func(e *Event) { done <- 3 })
irccon.RunCallbacks(&Event{
Code: "TEST",
})
var results []int
results = append(results, <-done)
results = append(results, <-done)
if len(results) != 2 || !(results[0] == 2 && results[1] == 3) {
t.Error("Callbacks not cleared")
}
}