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  }