mirror of https://github.com/fluffle/goirc
Start of channel tests.
This commit is contained in:
parent
b88983ceaf
commit
2a6f19dc83
|
@ -0,0 +1,66 @@
|
||||||
|
package state
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/fluffle/goirc/logging"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestNewChannel(t *testing.T) {
|
||||||
|
l, _ := logging.NewMock()
|
||||||
|
ch := NewChannel("#test1", l)
|
||||||
|
|
||||||
|
if ch.Name != "#test1" || ch.l != l {
|
||||||
|
t.Errorf("Channel not created correctly by NewChannel()")
|
||||||
|
}
|
||||||
|
if len(ch.nicks) != 0 || len(ch.lookup) != 0 {
|
||||||
|
t.Errorf("Channel maps contain data after NewChannel()")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAddNick(t *testing.T) {
|
||||||
|
l, m := logging.NewMock()
|
||||||
|
ch := NewChannel("#test1", l)
|
||||||
|
nk := NewNick("test1", l)
|
||||||
|
cp := new(ChanPrivs)
|
||||||
|
|
||||||
|
ch.addNick(nk, cp)
|
||||||
|
m.CheckNothingWritten(t)
|
||||||
|
|
||||||
|
if len(ch.nicks) != 1 || len(ch.lookup) != 1 {
|
||||||
|
t.Errorf("Nick lists not updated correctly for add.")
|
||||||
|
}
|
||||||
|
if c, ok := ch.nicks[nk]; !ok || c != cp {
|
||||||
|
t.Errorf("Nick test1 not properly stored in nicks map.")
|
||||||
|
}
|
||||||
|
if n, ok := ch.lookup["test1"]; !ok || n != nk {
|
||||||
|
t.Errorf("Nick test1 not properly stored in lookup map.")
|
||||||
|
}
|
||||||
|
|
||||||
|
ch.addNick(nk, cp)
|
||||||
|
m.CheckWrittenAtLevel(t, logging.Warn,
|
||||||
|
"Channel.addNick(): test1 already on #test1.")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDelNick(t *testing.T) {
|
||||||
|
l, m := logging.NewMock()
|
||||||
|
ch := NewChannel("#test1", l)
|
||||||
|
nk := NewNick("test1", l)
|
||||||
|
cp := new(ChanPrivs)
|
||||||
|
|
||||||
|
// Testing the error state first is easier
|
||||||
|
ch.delNick(nk)
|
||||||
|
m.CheckWrittenAtLevel(t, logging.Warn,
|
||||||
|
"Channel.delNick(): test1 not on #test1.")
|
||||||
|
|
||||||
|
ch.addNick(nk, cp)
|
||||||
|
ch.delNick(nk)
|
||||||
|
if len(ch.nicks) != 0 || len(ch.lookup) != 0 {
|
||||||
|
t.Errorf("Nick lists not updated correctly for del.")
|
||||||
|
}
|
||||||
|
if c, ok := ch.nicks[nk]; ok || c != nil {
|
||||||
|
t.Errorf("Nick test1 not properly removed from nicks map.")
|
||||||
|
}
|
||||||
|
if n, ok := ch.lookup["#test1"]; ok || n != nil {
|
||||||
|
t.Errorf("Nick test1 not properly removed from lookup map.")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue