...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package testdclschemaloader
16
17 import (
18 "fmt"
19 "strings"
20 "testing"
21
22 dclmetadata "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/dcl/metadata"
23 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/dcl/schema/dclschemaloader"
24
25 dclunstruct "github.com/GoogleCloudPlatform/declarative-resource-client-library/unstructured"
26 "github.com/nasa9084/go-openapi"
27 k8sschema "k8s.io/apimachinery/pkg/runtime/schema"
28 )
29
30 type testSchemaLoader struct {
31 schemas map[string]*openapi.Schema
32 }
33
34 func New(schemas map[string]*openapi.Schema) dclschemaloader.DCLSchemaLoader {
35 return &testSchemaLoader{
36 schemas: schemas,
37 }
38 }
39
40 func (l *testSchemaLoader) GetDCLSchema(stv dclunstruct.ServiceTypeVersion) (*openapi.Schema, error) {
41 key := fmt.Sprintf("%s_%s_%s", strings.ToLower(stv.Service), strings.ToLower(stv.Version), strings.ToLower(stv.Type))
42 s, ok := l.schemas[key]
43 if !ok {
44 return nil, fmt.Errorf("couldn't find the dcl OpenAPI schema for %v", stv)
45 }
46 return s, nil
47 }
48
49 func DCLSchemaKeyForGVK(t *testing.T, gvk k8sschema.GroupVersionKind, smLoader dclmetadata.ServiceMetadataLoader) string {
50 key, err := dclschemaloader.DCLSchemaKeyForGVK(gvk, smLoader)
51 if err != nil {
52 t.Fatalf("error resolving DCL schema key for GroupVersionKind %v: %v", gvk, err)
53 }
54 return key
55 }
56
View as plain text