1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-28 02:18:15 +00:00
kyverno/pkg/cel/libs/resource/mock.go
Charles-Edouard Brétéché 2bb687550c
feat: add imagedata cel lib ()
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
2025-03-19 17:03:23 +08:00

57 lines
1.5 KiB
Go

package resource
import (
"github.com/kyverno/kyverno/pkg/globalcontext/store"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
// MOCK FOR TESTING
type MockCtx struct {
GetGlobalReferenceFunc func(string, string) (any, error)
GetImageDataFunc func(string) (map[string]any, error)
ListResourcesFunc func(string, string, string) (*unstructured.UnstructuredList, error)
GetResourceFunc func(string, string, string, string) (*unstructured.Unstructured, error)
}
func (mock *MockCtx) GetGlobalReference(n, p string) (any, error) {
return mock.GetGlobalReferenceFunc(n, p)
}
func (mock *MockCtx) GetImageData(n string) (map[string]any, error) {
return mock.GetImageDataFunc(n)
}
func (mock *MockCtx) ListResources(apiVersion, resource, namespace string) (*unstructured.UnstructuredList, error) {
return mock.ListResourcesFunc(apiVersion, resource, namespace)
}
func (mock *MockCtx) GetResource(apiVersion, resource, namespace, name string) (*unstructured.Unstructured, error) {
return mock.GetResourceFunc(apiVersion, resource, namespace, name)
}
type MockGctxStore struct {
Data map[string]store.Entry
}
func (m *MockGctxStore) Get(name string) (store.Entry, bool) {
entry, ok := m.Data[name]
return entry, ok
}
func (m *MockGctxStore) Set(name string, data store.Entry) {
if m.Data == nil {
m.Data = make(map[string]store.Entry)
}
m.Data[name] = data
}
type MockEntry struct {
Data any
Err error
}
func (m *MockEntry) Get(_ string) (any, error) {
return m.Data, m.Err
}
func (m *MockEntry) Stop() {}