1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
package cache_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/envoyproxy/go-control-plane/pkg/cache/types"
"github.com/envoyproxy/go-control-plane/pkg/cache/v3"
)
func TestIndexResourcesByName(t *testing.T) {
tests := []struct {
name string
resources []types.ResourceWithTTL
want map[string]types.ResourceWithTTL
}{
{
name: "empty",
resources: nil,
want: map[string]types.ResourceWithTTL{},
},
{
name: "more than one",
resources: []types.ResourceWithTTL{
{Resource: testEndpoint, TTL: &ttl},
{Resource: testRoute, TTL: &ttl},
},
want: map[string]types.ResourceWithTTL{
"cluster0": {Resource: testEndpoint, TTL: &ttl},
"route0": {Resource: testRoute, TTL: &ttl},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := cache.IndexResourcesByName(tt.resources)
assert.Equal(t, tt.want, got)
})
}
}
func TestIndexRawResourceByName(t *testing.T) {
tests := []struct {
name string
resources []types.Resource
want map[string]types.Resource
}{
{
name: "empty",
resources: nil,
want: map[string]types.Resource{},
},
{
name: "more than one",
resources: []types.Resource{
testEndpoint,
testRoute,
},
want: map[string]types.Resource{
"cluster0": testEndpoint,
"route0": testRoute,
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := cache.IndexRawResourcesByName(tt.resources)
assert.Equal(t, tt.want, got)
})
}
}
func TestNewResources(t *testing.T) {
resources := cache.NewResources("x", []types.Resource{
testEndpoint,
testRoute,
})
assert.NotNil(t, resources.Items)
assert.Equal(t, "x", resources.Version)
}
|