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
43 lines
794 B
package fifo_test
|
|
|
|
import (
|
|
"cache/fifo"
|
|
"github.com/matryer/is"
|
|
"testing"
|
|
)
|
|
|
|
// TestFifo
|
|
//
|
|
// @Description: 单元测试
|
|
// @param t
|
|
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())
|
|
}
|