Slight fixes to ReNick and tests for the rest of st's Nick methods.

This commit is contained in:
Alex Bramley 2011-10-13 20:44:44 +01:00
parent 4c6c503069
commit 9163b9af7a
2 changed files with 47 additions and 4 deletions

View File

@ -64,9 +64,13 @@ func (st *stateTracker) GetNick(n string) *Nick {
// under a "neu" nick rather than the old one.
func (st *stateTracker) ReNick(old, neu string) {
if n, ok := st.nicks[old]; ok {
if _, ok := st.nicks[neu]; !ok {
st.nicks[old] = nil, false
n.Nick = neu
st.nicks[neu] = n
} else {
logging.Warn("StateTracker.ReNick(): %s already exists.", neu)
}
} else {
logging.Warn("StateTracker.ReNick(): %s not tracked.", old)
}

View File

@ -57,6 +57,45 @@ func TestReNick(t *testing.T) {
t.Errorf("Nick test2 doesn't exist after ReNick.")
}
if len(st.nicks) != 1 {
t.Errorf("Nick list changed size during GetNick.")
t.Errorf("Nick list changed size during ReNick.")
}
test2 := &Nick{Nick: "test2", st: st}
st.nicks["test1"] = test2
st.ReNick("test1", "test2")
if n, ok := st.nicks["test2"]; !ok || n != test1 {
t.Errorf("Nick test2 overwritten/deleted by ReNick.")
}
if n, ok := st.nicks["test1"]; !ok || n != test2 {
t.Errorf("Nick test1 overwritten/deleted by ReNick.")
}
if len(st.nicks) != 2 {
t.Errorf("Nick list changed size during ReNick.")
}
}
func TestDelNick(t *testing.T) {
st := NewTracker()
test1 := &Nick{Nick: "test1", st: st}
st.nicks["test1"] = test1
st.DelNick("test1")
if _, ok := st.nicks["test1"]; ok {
t.Errorf("Nick test1 still exists after DelNick.")
}
if len(st.nicks) != 0 {
t.Errorf("Nick list still contains nicks after DelNick.")
}
st.nicks["test1"] = test1
st.DelNick("test2")
if len(st.nicks) != 1 {
t.Errorf("DelNick had unexpected side-effects.")
}
}