diff --git a/pkg/reconciler/testing/configmap.go b/pkg/reconciler/testing/configmap.go new file mode 100644 index 000000000000..a14d15994af1 --- /dev/null +++ b/pkg/reconciler/testing/configmap.go @@ -0,0 +1,44 @@ +/* +Copyright 2018 The Knative Authors +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package testing + +import ( + "fmt" + "io/ioutil" + "testing" + + "github.com/ghodss/yaml" + corev1 "k8s.io/api/core/v1" +) + +// ConfigMapFromTestFile creates a v1.ConfigMap from a YAML file +// It loads the YAML file from the testdata folder. +func ConfigMapFromTestFile(t *testing.T, name string) *corev1.ConfigMap { + t.Helper() + + b, err := ioutil.ReadFile(fmt.Sprintf("testdata/%s.yaml", name)) + if err != nil { + t.Fatalf("ReadFile() = %v", err) + } + + var cm corev1.ConfigMap + + // Use github.com/ghodss/yaml since it reads json struct + // tags so things unmarshal properly + if err := yaml.Unmarshal(b, &cm); err != nil { + t.Fatalf("yaml.Unmarshal() = %v", err) + } + + return &cm +} diff --git a/pkg/reconciler/v1alpha1/revision/config/controller_test.go b/pkg/reconciler/v1alpha1/revision/config/controller_test.go index f4139461cab0..cbca86cb7362 100644 --- a/pkg/reconciler/v1alpha1/revision/config/controller_test.go +++ b/pkg/reconciler/v1alpha1/revision/config/controller_test.go @@ -17,29 +17,22 @@ limitations under the License. package config import ( - "fmt" - "io/ioutil" "testing" "github.com/google/go-cmp/cmp" "github.com/knative/serving/pkg/system" - yaml "gopkg.in/yaml.v2" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/knative/serving/pkg/reconciler/testing" ) var noSidecarImage = "" func TestControllerConfigurationFromFile(t *testing.T) { - b, err := ioutil.ReadFile(fmt.Sprintf("testdata/%s.yaml", ControllerConfigName)) - if err != nil { - t.Errorf("ReadFile() = %v", err) - } - var cm corev1.ConfigMap - if err := yaml.Unmarshal(b, &cm); err != nil { - t.Errorf("yaml.Unmarshal() = %v", err) - } - if _, err := NewControllerConfigFromConfigMap(&cm); err != nil { + cm := ConfigMapFromTestFile(t, ControllerConfigName) + + if _, err := NewControllerConfigFromConfigMap(cm); err != nil { t.Errorf("NewControllerConfigFromConfigMap() = %v", err) } } diff --git a/pkg/reconciler/v1alpha1/revision/config/network_test.go b/pkg/reconciler/v1alpha1/revision/config/network_test.go index 7891fbde14a1..7028d0d136c2 100644 --- a/pkg/reconciler/v1alpha1/revision/config/network_test.go +++ b/pkg/reconciler/v1alpha1/revision/config/network_test.go @@ -17,27 +17,20 @@ limitations under the License. package config import ( - "fmt" - "io/ioutil" "testing" - "github.com/ghodss/yaml" "github.com/google/go-cmp/cmp" "github.com/knative/serving/pkg/system" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/knative/serving/pkg/reconciler/testing" ) func TestOurNetwork(t *testing.T) { - b, err := ioutil.ReadFile(fmt.Sprintf("testdata/%s.yaml", NetworkConfigName)) - if err != nil { - t.Errorf("ReadFile() = %v", err) - } - var cm corev1.ConfigMap - if err := yaml.Unmarshal(b, &cm); err != nil { - t.Errorf("yaml.Unmarshal() = %v", err) - } - if _, err := NewNetworkFromConfigMap(&cm); err != nil { + cm := ConfigMapFromTestFile(t, NetworkConfigName) + + if _, err := NewNetworkFromConfigMap(cm); err != nil { t.Errorf("NewNetworkFromConfigMap() = %v", err) } } diff --git a/pkg/reconciler/v1alpha1/revision/config/observability_test.go b/pkg/reconciler/v1alpha1/revision/config/observability_test.go index 86565e197a2d..57d8096f7a55 100644 --- a/pkg/reconciler/v1alpha1/revision/config/observability_test.go +++ b/pkg/reconciler/v1alpha1/revision/config/observability_test.go @@ -17,27 +17,20 @@ limitations under the License. package config import ( - "fmt" - "io/ioutil" "testing" - "github.com/ghodss/yaml" "github.com/google/go-cmp/cmp" "github.com/knative/serving/pkg/system" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + . "github.com/knative/serving/pkg/reconciler/testing" ) func TestOurObservability(t *testing.T) { - b, err := ioutil.ReadFile(fmt.Sprintf("testdata/%s.yaml", ObservabilityConfigName)) - if err != nil { - t.Errorf("ReadFile() = %v", err) - } - var cm corev1.ConfigMap - if err := yaml.Unmarshal(b, &cm); err != nil { - t.Errorf("yaml.Unmarshal() = %v", err) - } - if _, err := NewObservabilityFromConfigMap(&cm); err != nil { + cm := ConfigMapFromTestFile(t, ObservabilityConfigName) + + if _, err := NewObservabilityFromConfigMap(cm); err != nil { t.Errorf("NewObservabilityFromConfigMap() = %v", err) } }