Test nick<->channel dissociation in DelNick().

This commit is contained in:
Alex Bramley 2011-10-27 16:04:45 +01:00
parent 6ded98b9e5
commit 8771f1db77
1 changed files with 34 additions and 3 deletions

View File

@ -130,8 +130,8 @@ func TestSTDelNick(t *testing.T) {
l.SetLogLevel(logging.Debug)
st := NewTracker("mynick", l)
test1 := NewNick("test1", l)
st.nicks["test1"] = test1
nick1 := NewNick("test1", l)
st.nicks["test1"] = nick1
st.DelNick("test1")
m.CheckNothingWritten(t)
@ -143,7 +143,7 @@ func TestSTDelNick(t *testing.T) {
t.Errorf("Nick list still contains nicks after DelNick.")
}
st.nicks["test1"] = test1
st.nicks["test1"] = nick1
st.DelNick("test2")
m.CheckWrittenAtLevel(t, logging.Warn,
@ -161,6 +161,37 @@ func TestSTDelNick(t *testing.T) {
if len(st.nicks) != 2 {
t.Errorf("Deleting myself had unexpected side-effects.")
}
// Test that deletion correctly dissociates nick from channels.
// Create a new channel for testing purposes
chan1 := NewChannel("#test1", l)
st.chans["#test1"] = chan1
// Associate both "my" nick and test1 with the channel
p := new(ChanPrivs)
chan1.addNick(st.me, p)
st.me.addChannel(chan1, p)
chan1.addNick(nick1, p)
nick1.addChannel(chan1, p)
// Test we have the expected starting state (at least vaguely
if len(chan1.nicks) != 2 || len(st.me.chans) != 1 || len(nick1.chans) != 1 {
t.Errorf("Bad initial state for test DelNick() channel dissociation.")
}
st.DelNick("test1")
// Actual deletion tested above...
if len(chan1.nicks) != 1 || len(st.me.chans) != 1 || len(nick1.chans) != 0 {
t.Errorf("Deleting nick didn't dissociate correctly from channels.")
}
if _, ok := chan1.nicks[nick1]; ok {
t.Errorf("Nick not removed from channel's nick map.")
}
if _, ok := chan1.lookup["test1"]; ok {
t.Errorf("Nick not removed from channels's lookup map.")
}
}
func TestSTNewChannel(t *testing.T) {