ssh-chat/chat/history_test.go
2014-12-20 16:45:10 -08:00

66 lines
1.0 KiB
Go

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)
}
}