github.com/argoproj/argo-cd/v3@v3.2.1/util/cache/client_test.go (about) 1 package cache 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 ) 10 11 type testStruct struct { 12 Foo string 13 Bar []byte 14 } 15 16 func TestCache(t *testing.T) { 17 c := NewInMemoryCache(time.Hour) 18 var obj testStruct 19 err := c.Get("key", &obj) 20 assert.Equal(t, err, ErrCacheMiss) 21 cacheObj := testStruct{ 22 Foo: "foo", 23 Bar: []byte("bar"), 24 } 25 _ = c.Set(&Item{ 26 Key: "key", 27 Object: &cacheObj, 28 }) 29 cacheObj.Foo = "baz" 30 err = c.Get("key", &obj) 31 require.NoError(t, err) 32 assert.Equal(t, "foo", obj.Foo) 33 assert.Equal(t, "bar", string(obj.Bar)) 34 35 err = c.Delete("key") 36 require.NoError(t, err) 37 err = c.Get("key", &obj) 38 assert.Equal(t, err, ErrCacheMiss) 39 }