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