You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
794 B

2 years ago
package fifo_test
import (
"cache/fifo"
2 years ago
"github.com/matryer/is"
"testing"
)
// TestFifo
//
// @Description: 单元测试
// @param t
2 years ago
func TestFifo(t *testing.T) {
is := is.New(t)
cache := fifo.New(24, nil)
cache.DelOldest()
cache.Set("k1", 1)
v := cache.Get("k1")
is.Equal(v, 1)
cache.Del("k1")
is.Equal(0, cache.Len())
}
// TestFifoWithCallBack
//
// @Description: 带删除回调
// @param t
func TestFifoWithCallBack(t *testing.T) {
is := is.New(t)
keys := make([]string, 8)
onEvicted := func(key string, value any) {
keys = append(keys, key)
}
cache := fifo.New(24, onEvicted)
cache.Set("k1", int8(1))
cache.Set("k2", int8(2))
cache.Set("k3", int8(3))
cache.Set("k4", int8(4))
expected := []string{"k1", "k2"}
is.Equal(expected, keys)
is.Equal(2, cache.Len())
2 years ago
}