github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/pkg/domain/infra/abi/play_test.go (about) 1 package abi 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 v1 "k8s.io/api/core/v1" 9 v12 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 ) 11 12 func TestReadConfigMapFromFile(t *testing.T) { 13 tests := []struct { 14 name string 15 configMapContent string 16 expectError bool 17 expectedErrorMsg string 18 expected v1.ConfigMap 19 }{ 20 { 21 "ValidConfigMap", 22 ` 23 apiVersion: v1 24 kind: ConfigMap 25 metadata: 26 name: foo 27 data: 28 myvar: foo 29 `, 30 false, 31 "", 32 v1.ConfigMap{ 33 TypeMeta: v12.TypeMeta{ 34 Kind: "ConfigMap", 35 APIVersion: "v1", 36 }, 37 ObjectMeta: v12.ObjectMeta{ 38 Name: "foo", 39 }, 40 Data: map[string]string{ 41 "myvar": "foo", 42 }, 43 }, 44 }, 45 { 46 "InvalidYAML", 47 ` 48 Invalid YAML 49 apiVersion: v1 50 kind: ConfigMap 51 metadata: 52 name: foo 53 data: 54 myvar: foo 55 `, 56 true, 57 "unable to read YAML as Kube ConfigMap", 58 v1.ConfigMap{}, 59 }, 60 { 61 "InvalidKind", 62 ` 63 apiVersion: v1 64 kind: InvalidKind 65 metadata: 66 name: foo 67 data: 68 myvar: foo 69 `, 70 true, 71 "invalid YAML kind", 72 v1.ConfigMap{}, 73 }, 74 } 75 76 for _, test := range tests { 77 test := test 78 t.Run(test.name, func(t *testing.T) { 79 buf := bytes.NewBufferString(test.configMapContent) 80 cm, err := readConfigMapFromFile(buf) 81 82 if test.expectError { 83 assert.Error(t, err) 84 assert.Contains(t, err.Error(), test.expectedErrorMsg) 85 } else { 86 assert.NoError(t, err) 87 assert.Equal(t, test.expected, cm) 88 } 89 }) 90 } 91 }