github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/pkg/specgen/generate/kube/play_test.go (about) 1 package kube 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 v1 "k8s.io/api/core/v1" 8 v12 "k8s.io/apimachinery/pkg/apis/meta/v1" 9 ) 10 11 func TestEnvVarsFromConfigMap(t *testing.T) { 12 tests := []struct { 13 name string 14 envFrom v1.EnvFromSource 15 configMapList []v1.ConfigMap 16 expected map[string]string 17 }{ 18 { 19 "ConfigMapExists", 20 v1.EnvFromSource{ 21 ConfigMapRef: &v1.ConfigMapEnvSource{ 22 LocalObjectReference: v1.LocalObjectReference{ 23 Name: "foo", 24 }, 25 }, 26 }, 27 configMapList, 28 map[string]string{ 29 "myvar": "foo", 30 }, 31 }, 32 { 33 "ConfigMapDoesNotExist", 34 v1.EnvFromSource{ 35 ConfigMapRef: &v1.ConfigMapEnvSource{ 36 LocalObjectReference: v1.LocalObjectReference{ 37 Name: "doesnotexist", 38 }, 39 }, 40 }, 41 configMapList, 42 map[string]string{}, 43 }, 44 { 45 "EmptyConfigMapList", 46 v1.EnvFromSource{ 47 ConfigMapRef: &v1.ConfigMapEnvSource{ 48 LocalObjectReference: v1.LocalObjectReference{ 49 Name: "foo", 50 }, 51 }, 52 }, 53 []v1.ConfigMap{}, 54 map[string]string{}, 55 }, 56 } 57 58 for _, test := range tests { 59 test := test 60 t.Run(test.name, func(t *testing.T) { 61 result := envVarsFromConfigMap(test.envFrom, test.configMapList) 62 assert.Equal(t, test.expected, result) 63 }) 64 } 65 } 66 67 func TestEnvVarValue(t *testing.T) { 68 tests := []struct { 69 name string 70 envVar v1.EnvVar 71 configMapList []v1.ConfigMap 72 expected string 73 }{ 74 { 75 "ConfigMapExists", 76 v1.EnvVar{ 77 Name: "FOO", 78 ValueFrom: &v1.EnvVarSource{ 79 ConfigMapKeyRef: &v1.ConfigMapKeySelector{ 80 LocalObjectReference: v1.LocalObjectReference{ 81 Name: "foo", 82 }, 83 Key: "myvar", 84 }, 85 }, 86 }, 87 configMapList, 88 "foo", 89 }, 90 { 91 "ContainerKeyDoesNotExistInConfigMap", 92 v1.EnvVar{ 93 Name: "FOO", 94 ValueFrom: &v1.EnvVarSource{ 95 ConfigMapKeyRef: &v1.ConfigMapKeySelector{ 96 LocalObjectReference: v1.LocalObjectReference{ 97 Name: "foo", 98 }, 99 Key: "doesnotexist", 100 }, 101 }, 102 }, 103 configMapList, 104 "", 105 }, 106 { 107 "ConfigMapDoesNotExist", 108 v1.EnvVar{ 109 Name: "FOO", 110 ValueFrom: &v1.EnvVarSource{ 111 ConfigMapKeyRef: &v1.ConfigMapKeySelector{ 112 LocalObjectReference: v1.LocalObjectReference{ 113 Name: "doesnotexist", 114 }, 115 Key: "myvar", 116 }, 117 }, 118 }, 119 configMapList, 120 "", 121 }, 122 { 123 "EmptyConfigMapList", 124 v1.EnvVar{ 125 Name: "FOO", 126 ValueFrom: &v1.EnvVarSource{ 127 ConfigMapKeyRef: &v1.ConfigMapKeySelector{ 128 LocalObjectReference: v1.LocalObjectReference{ 129 Name: "foo", 130 }, 131 Key: "myvar", 132 }, 133 }, 134 }, 135 []v1.ConfigMap{}, 136 "", 137 }, 138 } 139 140 for _, test := range tests { 141 test := test 142 t.Run(test.name, func(t *testing.T) { 143 result := envVarValue(test.envVar, test.configMapList) 144 assert.Equal(t, test.expected, result) 145 }) 146 } 147 } 148 149 var configMapList = []v1.ConfigMap{ 150 { 151 TypeMeta: v12.TypeMeta{ 152 Kind: "ConfigMap", 153 }, 154 ObjectMeta: v12.ObjectMeta{ 155 Name: "bar", 156 }, 157 Data: map[string]string{ 158 "myvar": "bar", 159 }, 160 }, 161 { 162 TypeMeta: v12.TypeMeta{ 163 Kind: "ConfigMap", 164 }, 165 ObjectMeta: v12.ObjectMeta{ 166 Name: "foo", 167 }, 168 Data: map[string]string{ 169 "myvar": "foo", 170 }, 171 }, 172 }