/
githubmirror
/
client
Обзор
Документация
Войти
/
githubmirror
/
client
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
go/stellar/time_cache_test.go
75 строк
2 KB
chrisnojima-zoom
Version 670 - clean2 (#29122)
08 июн 2026, 19:31
Не верифицирован
08 июн 2026, 19:31
1943197
Код
Авторство
О чём код?
package stellar import ( "fmt" "testing" "time" "github.com/keybase/client/go/libkb" "github.com/stretchr/testify/require" ) func TestTimeCache(t *testing.T) { tc := libkb.SetupTest(t, "loaderclean", 1) defer tc.Cleanup() var a int c := NewTimeCache("xyz", 50, time.Minute) c.Put(tc.MetaContext(), "k", 1) ok := c.Get(tc.MetaContext(), "k", &a) require.True(t, ok) require.Equal(t, 1, a) fill2 := func() (any, error) { return 2, nil } fillErr := func() (any, error) { return 3, fmt.Errorf("eek") } err := c.GetWithFill(tc.MetaContext(), "l", &a, fill2) require.NoError(t, err) require.Equal(t, 2, a) err = c.GetWithFill(tc.MetaContext(), "l", &a, fillErr) require.NoError(t, err) require.Equal(t, 2, a) err = c.GetWithFill(tc.MetaContext(), "m", &a, fillErr) require.Error(t, err) require.Equal(t, 2, a) } func TestTimeCacheWrongType(t *testing.T) { tc := libkb.SetupTest(t, "loaderclean", 1) defer tc.Cleanup() var a int c := NewTimeCache("xyz", 50, time.Minute) c.Put(tc.MetaContext(), "k", "b") t.Logf("+ t1") ok := c.Get(tc.MetaContext(), "k", &a) require.False(t, ok) t.Logf("+ t2") c.Put(tc.MetaContext(), "k", "b") ok = c.Get(tc.MetaContext(), "k", a) require.False(t, ok) t.Logf("+ t3") c.Put(tc.MetaContext(), "k", "b") ok = c.Get(tc.MetaContext(), "k", "z") require.False(t, ok) } func TestTimeCacheWrongTypeStructs(t *testing.T) { tc := libkb.SetupTest(t, "loaderclean", 1) defer tc.Cleanup() type T1 struct{} type T2 struct{ y string } var a T1 c := NewTimeCache("xyz", 50, time.Minute) c.Put(tc.MetaContext(), "k", T2{y: "b"}) ok := c.Get(tc.MetaContext(), "k", &a) require.False(t, ok) }