package message import "testing" func msgEqual(a []Message, b []Message) bool { if len(a) != len(b) { return false } for i := range a { if a[i].String() != b[i].String() { return false } } return true } func TestHistory(t *testing.T) { var r, expected []Message var size int h := NewHistory(5) r = h.Get(10) expected = []Message{} if !msgEqual(r, expected) { t.Errorf("Got: %v, Expected: %v", r, expected) } h.Add(NewMsg("1")) if size = h.Len(); size != 1 { t.Errorf("Wrong size: %v", size) } r = h.Get(1) expected = []Message{NewMsg("1")} if !msgEqual(r, expected) { t.Errorf("Got: %v, Expected: %v", r, expected) } h.Add(NewMsg("2")) h.Add(NewMsg("3")) h.Add(NewMsg("4")) h.Add(NewMsg("5")) h.Add(NewMsg("6")) if size = h.Len(); size != 5 { t.Errorf("Wrong size: %v", size) } r = h.Get(2) expected = []Message{NewMsg("5"), NewMsg("6")} if !msgEqual(r, expected) { t.Errorf("Got: %v, Expected: %v", r, expected) } r = h.Get(10) expected = []Message{NewMsg("2"), NewMsg("3"), NewMsg("4"), NewMsg("5"), NewMsg("6")} if !msgEqual(r, expected) { t.Errorf("Got: %v, Expected: %v", r, expected) } }