github.com/argoproj/argo-cd/v2@v2.10.5/util/cache/inmemory_test.go (about)

     1  package cache
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  type foo struct {
    11  	Bar string
    12  }
    13  
    14  func TestInMemoryCache(t *testing.T) {
    15  	cache := NewInMemoryCache(1 * time.Hour)
    16  	// https://stackoverflow.com/questions/46671636/gob-decode-giving-decodevalue-of-unassignable-value-error
    17  	obj := &foo{}
    18  	// cache miss
    19  	err := cache.Get("my-key", obj)
    20  	assert.Equal(t, ErrCacheMiss, err)
    21  	// cache hit
    22  	err = cache.Set(&Item{Key: "my-key", Object: &foo{Bar: "bar"}})
    23  	assert.NoError(t, err)
    24  	err = cache.Get("my-key", obj)
    25  	assert.NoError(t, err)
    26  	assert.Equal(t, &foo{Bar: "bar"}, obj)
    27  }