wp-go/cache/vars_test.go
2023-01-20 18:43:11 +08:00

67 lines
1.1 KiB
Go

package cache
import (
"context"
"fmt"
"testing"
"time"
)
var cc = *NewVarCache(func(a ...any) (int, error) {
return 1, nil
}, time.Minute)
func TestVarCache_Flush(t *testing.T) {
type testCase[T any] struct {
name string
c VarCache[T]
}
tests := []testCase[int]{
{
name: "1",
c: cc,
},
}
c := context.Background()
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
fmt.Println(tt.c.GetCache(c, time.Second))
tt.c.Flush()
fmt.Println(tt.c.GetCache(c, time.Second))
})
}
}
func TestVarCache_IsExpired(t *testing.T) {
type testCase[T any] struct {
name string
c VarCache[T]
want bool
}
tests := []testCase[int]{
{
name: "expired",
c: cc,
want: true,
},
{
name: "not expired",
c: func() VarCache[int] {
v := *NewVarCache(func(a ...any) (int, error) {
return 1, nil
}, time.Minute)
_, _ = v.GetCache(context.Background(), time.Second)
return v
}(),
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := tt.c.IsExpired(); got != tt.want {
t.Errorf("IsExpired() = %v, want %v", got, tt.want)
}
})
}
}