k8s.io/apiserver@v0.31.1/pkg/apis/apiserver/v1/defaults_test.go (about) 1 /* 2 Copyright 2019 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package v1 18 19 import ( 20 "testing" 21 "time" 22 23 v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 24 25 "github.com/google/go-cmp/cmp" 26 ) 27 28 func TestKMSProviderTimeoutDefaults(t *testing.T) { 29 testCases := []struct { 30 desc string 31 in *KMSConfiguration 32 want *KMSConfiguration 33 }{ 34 { 35 desc: "timeout not supplied", 36 in: &KMSConfiguration{}, 37 want: &KMSConfiguration{Timeout: defaultTimeout, CacheSize: &defaultCacheSize, APIVersion: defaultAPIVersion}, 38 }, 39 { 40 desc: "timeout supplied", 41 in: &KMSConfiguration{Timeout: &v1.Duration{Duration: 1 * time.Minute}}, 42 want: &KMSConfiguration{Timeout: &v1.Duration{Duration: 1 * time.Minute}, CacheSize: &defaultCacheSize, APIVersion: defaultAPIVersion}, 43 }, 44 } 45 46 for _, tt := range testCases { 47 t.Run(tt.desc, func(t *testing.T) { 48 SetDefaults_KMSConfiguration(tt.in) 49 if d := cmp.Diff(tt.want, tt.in); d != "" { 50 t.Fatalf("KMS Provider mismatch (-want +got):\n%s", d) 51 } 52 }) 53 } 54 } 55 56 func TestKMSProviderCacheDefaults(t *testing.T) { 57 var ( 58 zero int32 = 0 59 ten int32 = 10 60 negative int32 = -1 61 ) 62 63 testCases := []struct { 64 desc string 65 in *KMSConfiguration 66 want *KMSConfiguration 67 }{ 68 { 69 desc: "cache size not supplied", 70 in: &KMSConfiguration{}, 71 want: &KMSConfiguration{Timeout: defaultTimeout, CacheSize: &defaultCacheSize, APIVersion: defaultAPIVersion}, 72 }, 73 { 74 desc: "cache of zero size supplied", 75 in: &KMSConfiguration{CacheSize: &zero}, 76 want: &KMSConfiguration{Timeout: defaultTimeout, CacheSize: &zero, APIVersion: defaultAPIVersion}, 77 }, 78 { 79 desc: "positive cache size supplied", 80 in: &KMSConfiguration{CacheSize: &ten}, 81 want: &KMSConfiguration{Timeout: defaultTimeout, CacheSize: &ten, APIVersion: defaultAPIVersion}, 82 }, 83 { 84 desc: "negative cache size supplied", 85 in: &KMSConfiguration{CacheSize: &negative}, 86 want: &KMSConfiguration{Timeout: defaultTimeout, CacheSize: &negative, APIVersion: defaultAPIVersion}, 87 }, 88 { 89 desc: "cache size not supplied but API version is v2", 90 in: &KMSConfiguration{APIVersion: "v2"}, 91 want: &KMSConfiguration{Timeout: defaultTimeout, APIVersion: "v2"}, 92 }, 93 { 94 desc: "cache size not supplied with API version v1", 95 in: &KMSConfiguration{APIVersion: "v1"}, 96 want: &KMSConfiguration{Timeout: defaultTimeout, CacheSize: &defaultCacheSize, APIVersion: defaultAPIVersion}, 97 }, 98 } 99 100 for _, tt := range testCases { 101 t.Run(tt.desc, func(t *testing.T) { 102 SetDefaults_KMSConfiguration(tt.in) 103 if d := cmp.Diff(tt.want, tt.in); d != "" { 104 t.Fatalf("KMS Provider mismatch (-want +got):\n%s", d) 105 } 106 }) 107 } 108 } 109 110 func TestKMSProviderAPIVersionDefaults(t *testing.T) { 111 testCases := []struct { 112 desc string 113 in *KMSConfiguration 114 want *KMSConfiguration 115 }{ 116 { 117 desc: "apiVersion not supplied", 118 in: &KMSConfiguration{}, 119 want: &KMSConfiguration{Timeout: defaultTimeout, CacheSize: &defaultCacheSize, APIVersion: defaultAPIVersion}, 120 }, 121 { 122 desc: "apiVersion supplied", 123 in: &KMSConfiguration{Timeout: &v1.Duration{Duration: 1 * time.Minute}, APIVersion: "v1"}, 124 want: &KMSConfiguration{Timeout: &v1.Duration{Duration: 1 * time.Minute}, CacheSize: &defaultCacheSize, APIVersion: "v1"}, 125 }, 126 { 127 desc: "apiVersion v2 supplied, cache size not defaulted", 128 in: &KMSConfiguration{Timeout: &v1.Duration{Duration: 1 * time.Minute}, APIVersion: "v2"}, 129 want: &KMSConfiguration{Timeout: &v1.Duration{Duration: 1 * time.Minute}, APIVersion: "v2"}, 130 }, 131 } 132 133 for _, tt := range testCases { 134 t.Run(tt.desc, func(t *testing.T) { 135 SetDefaults_KMSConfiguration(tt.in) 136 if d := cmp.Diff(tt.want, tt.in); d != "" { 137 t.Fatalf("KMS Provider mismatch (-want +got):\n%s", d) 138 } 139 }) 140 } 141 }