github.com/argoproj/argo-cd/v3@v3.2.1/util/cache/inmemory_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 foo struct {
    12  	Bar string
    13  }
    14  
    15  func TestInMemoryCache(t *testing.T) {
    16  	cache := NewInMemoryCache(1 * time.Hour)
    17  	// https://stackoverflow.com/questions/46671636/gob-decode-giving-decodevalue-of-unassignable-value-error
    18  	obj := &foo{}
    19  	// cache miss
    20  	err := cache.Get("my-key", obj)
    21  	assert.Equal(t, ErrCacheMiss, err)
    22  	// cache hit
    23  	err = cache.Set(&Item{Key: "my-key", Object: &foo{Bar: "bar"}})
    24  	require.NoError(t, err)
    25  	err = cache.Get("my-key", obj)
    26  	require.NoError(t, err)
    27  	assert.Equal(t, &foo{Bar: "bar"}, obj)
    28  }