github.com/Axway/agent-sdk@v1.1.101/pkg/agent/cache/watchresource_test.go (about) 1 package cache 2 3 import ( 4 "testing" 5 6 v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1" 7 "github.com/Axway/agent-sdk/pkg/config" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func createWatchResource(group, kind, id, name string) *v1.ResourceInstance { 12 return &v1.ResourceInstance{ 13 ResourceMeta: v1.ResourceMeta{ 14 GroupVersionKind: v1.GroupVersionKind{ 15 GroupKind: v1.GroupKind{ 16 Group: group, 17 Kind: kind, 18 }, 19 }, 20 Metadata: v1.Metadata{ 21 ID: id, 22 }, 23 Name: name, 24 }, 25 } 26 } 27 28 // add watch resource 29 // get watch resource by key 30 // get watch resource by id 31 // get watch resource by name 32 // delete watch resource 33 func TestWatchResourceCache(t *testing.T) { 34 m := NewAgentCacheManager(&config.CentralConfiguration{}, false) 35 assert.NotNil(t, m) 36 37 cachedRes := m.GetWatchResourceByKey("group:kind:test-id-1") 38 assert.Nil(t, cachedRes) 39 40 instance1 := createWatchResource("group-1", "kind-1", "test-id-1", "test-name-1") 41 instance2 := createWatchResource("group-2", "kind-2", "test-id-2", "test-name-2") 42 m.AddWatchResource(instance1) 43 m.AddWatchResource(instance2) 44 45 keys := m.GetWatchResourceCacheKeys("group-1", "kind-1") 46 assert.Equal(t, 1, len(keys)) 47 48 keys = m.GetWatchResourceCacheKeys("group-2", "kind-2") 49 assert.Equal(t, 1, len(keys)) 50 51 cachedRes = m.GetWatchResourceByKey("group-1:kind-1:test-id-1") 52 assert.Equal(t, instance1, cachedRes) 53 54 cachedRes = m.GetWatchResourceByID("dummy-group", "dummy=kind", "test-id-1") 55 assert.Nil(t, cachedRes) 56 57 cachedRes = m.GetWatchResourceByID("group-1", "kind-1", "test-id-1") 58 assert.Equal(t, instance1, cachedRes) 59 60 cachedRes = m.GetWatchResourceByName("group-2", "kind-2", "test-name-2") 61 assert.Equal(t, instance2, cachedRes) 62 63 err := m.DeleteWatchResource("group-2", "kind-2", "test-id-2") 64 assert.Nil(t, err) 65 66 cachedRes = m.GetWatchResourceByID("group-2", "kind-2", "test-id-2") 67 assert.Nil(t, cachedRes) 68 69 cachedRes = m.GetWatchResourceByID("group-1", "kind-1", "test-id-1") 70 assert.NotNil(t, cachedRes) 71 72 err = m.DeleteWatchResource("group-1", "kind-1", "test-id-1") 73 assert.Nil(t, err) 74 75 keys = m.GetWatchResourceCacheKeys("group-1", "kind-1") 76 assert.Equal(t, 0, len(keys)) 77 78 keys = m.GetWatchResourceCacheKeys("group-2", "kind-2") 79 assert.Equal(t, 0, len(keys)) 80 }