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

     1  package cache
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/spf13/cobra"
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestAddCacheFlagsToCmd(t *testing.T) {
    12  	cache, err := AddCacheFlagsToCmd(&cobra.Command{})()
    13  	assert.NoError(t, err)
    14  	assert.Equal(t, 24*time.Hour, cache.client.(*redisCache).expiration)
    15  }
    16  
    17  func TestCacheClient(t *testing.T) {
    18  	client := NewInMemoryCache(60 * time.Second)
    19  	cache := NewCache(client)
    20  	t.Run("SetItem", func(t *testing.T) {
    21  		err := cache.SetItem("foo", "bar", 60*time.Second, false)
    22  		assert.NoError(t, err)
    23  	})
    24  	t.Run("GetItem", func(t *testing.T) {
    25  		var val string
    26  		err := cache.GetItem("foo", &val)
    27  		assert.NoError(t, err)
    28  		assert.Equal(t, "bar", val)
    29  	})
    30  	t.Run("DeleteItem", func(t *testing.T) {
    31  		err := cache.SetItem("foo", "bar", 0, true)
    32  		assert.NoError(t, err)
    33  		var val string
    34  		err = cache.GetItem("foo", &val)
    35  		assert.Error(t, err)
    36  		assert.Empty(t, val)
    37  	})
    38  	t.Run("Check for nil items", func(t *testing.T) {
    39  		err := cache.SetItem("foo", nil, 0, false)
    40  		assert.Error(t, err)
    41  		assert.Contains(t, err.Error(), "cannot set item")
    42  		err = cache.GetItem("foo", nil)
    43  		assert.Error(t, err)
    44  		assert.Contains(t, err.Error(), "cannot get item")
    45  	})
    46  }