Files
argo-cd/util/cache/appstate/cache_test.go
2019-10-16 15:46:45 -07:00

66 lines
1.8 KiB
Go

package appstate
import (
"testing"
"time"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
. "github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1"
cacheutil "github.com/argoproj/argo-cd/util/cache"
)
type fixtures struct {
*Cache
}
func newFixtures() *fixtures {
return &fixtures{NewCache(
cacheutil.NewCache(cacheutil.NewInMemoryCache(1*time.Hour)),
1*time.Minute,
)}
}
func TestCache_GetAppManagedResources(t *testing.T) {
cache := newFixtures().Cache
// cache miss
value := &[]*ResourceDiff{}
err := cache.GetAppManagedResources("my-appname", value)
assert.Equal(t, ErrCacheMiss, err)
// populate cache
err = cache.SetAppManagedResources("my-appname", []*ResourceDiff{{Name: "my-name"}})
assert.NoError(t, err)
// cache miss
err = cache.GetAppManagedResources("other-appname", value)
assert.Equal(t, ErrCacheMiss, err)
// cache hit
err = cache.GetAppManagedResources("my-appname", value)
assert.NoError(t, err)
assert.Equal(t, &[]*ResourceDiff{{Name: "my-name"}}, value)
}
func TestCache_GetAppResourcesTree(t *testing.T) {
cache := newFixtures().Cache
// cache miss
value := &ApplicationTree{}
err := cache.GetAppResourcesTree("my-appname", value)
assert.Equal(t, ErrCacheMiss, err)
// populate cache
err = cache.SetAppResourcesTree("my-appname", &ApplicationTree{Nodes: []ResourceNode{{}}})
assert.NoError(t, err)
// cache miss
err = cache.GetAppResourcesTree("other-appname", value)
assert.Equal(t, ErrCacheMiss, err)
// cache hit
err = cache.GetAppResourcesTree("my-appname", value)
assert.NoError(t, err)
assert.Equal(t, &ApplicationTree{Nodes: []ResourceNode{{}}}, value)
}
func TestAddCacheFlagsToCmd(t *testing.T) {
cache, err := AddCacheFlagsToCmd(&cobra.Command{})()
assert.NoError(t, err)
assert.Equal(t, 1*time.Hour, cache.appStateCacheExpiration)
}