aboutsummaryrefslogtreecommitdiffstats
path: root/src/k8splugin/internal/rb/profile_yaml_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/k8splugin/internal/rb/profile_yaml_test.go')
-rw-r--r--src/k8splugin/internal/rb/profile_yaml_test.go139
1 files changed, 139 insertions, 0 deletions
diff --git a/src/k8splugin/internal/rb/profile_yaml_test.go b/src/k8splugin/internal/rb/profile_yaml_test.go
new file mode 100644
index 00000000..c29bf9ed
--- /dev/null
+++ b/src/k8splugin/internal/rb/profile_yaml_test.go
@@ -0,0 +1,139 @@
+// +build unit
+
+/*
+ * Copyright 2018 Intel Corporation, Inc
+ *
+ * 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 rb
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+ "testing"
+)
+
+func TestProcessProfileYaml(t *testing.T) {
+
+ profileDir := "../../mock_files/mock_profiles/profile1"
+ manifestFile := "manifest.yaml"
+ faultymanifestfile := "faulty-manifest.yaml"
+
+ testCases := []struct {
+ label string
+ prDir, manifest string
+ expectedError string
+ }{
+ {
+ label: "Process Profile Yaml",
+ prDir: profileDir,
+ manifest: manifestFile,
+ expectedError: "",
+ },
+ {
+ label: "Non existent manifest file",
+ prDir: profileDir,
+ manifest: "non-existant-file.yaml",
+ expectedError: "Reading manifest file",
+ },
+ {
+ label: "Faulty manifest file",
+ prDir: profileDir,
+ manifest: faultymanifestfile,
+ expectedError: "Marshaling manifest yaml file",
+ },
+ }
+
+ for _, testCase := range testCases {
+ t.Run(testCase.label, func(t *testing.T) {
+ _, err := ProcessProfileYaml(testCase.prDir, testCase.manifest)
+ if err != nil {
+ if testCase.expectedError == "" {
+ t.Fatalf("Got an error %s", err)
+ }
+ if strings.Contains(err.Error(), testCase.expectedError) == false {
+ t.Fatalf("Got unexpected error message %s", err)
+ }
+ }
+ })
+ }
+}
+
+func TestCopyConfigurationOverrides(t *testing.T) {
+
+ profileDir := "../../mock_files/mock_profiles/profile1"
+ profileFileName := "p1.yaml"
+ manifestFile := "manifest.yaml"
+ faultySrcManifestFile := "faulty-src-manifest.yaml"
+ faultyDestManifestFile := "faulty-dest-manifest.yaml"
+ chartBaseDir := "../../mock_files/mock_charts"
+
+ //Remove the testchart1/templates/p1.yaml file that gets copied over
+ defer os.Remove(filepath.Join(chartBaseDir, "testchart1", "templates", profileFileName))
+
+ testCases := []struct {
+ label string
+ prDir, chDir, manifest string
+ expectedError string
+ }{
+ {
+ label: "Copy Configuration Overrides",
+ prDir: profileDir,
+ manifest: manifestFile,
+ chDir: chartBaseDir,
+ expectedError: "",
+ },
+ {
+ label: "Copy Configuration Overrides Faulty Source",
+ prDir: profileDir,
+ manifest: faultySrcManifestFile,
+ chDir: chartBaseDir,
+ expectedError: "Reading configuration file",
+ },
+ {
+ label: "Copy Configuration Overrides Faulty Destination",
+ prDir: profileDir,
+ manifest: faultyDestManifestFile,
+ chDir: chartBaseDir,
+ expectedError: "Writing configuration file",
+ },
+ }
+
+ for _, testCase := range testCases {
+ t.Run(testCase.label, func(t *testing.T) {
+ p, err := ProcessProfileYaml(testCase.prDir, testCase.manifest)
+ if err != nil {
+ t.Fatalf("Got unexpected error processing yaml %s", err)
+ }
+
+ err = p.CopyConfigurationOverrides(testCase.chDir)
+ if err != nil {
+ if testCase.expectedError == "" {
+ t.Fatalf("Got error %s", err)
+ }
+ if strings.Contains(err.Error(), testCase.expectedError) == false {
+ t.Fatalf("Got unexpected error message %s", err)
+ }
+
+ } else {
+ //Check if the file got copied over
+ if _, err = os.Stat(filepath.Join(testCase.chDir, "testchart1",
+ "templates", profileFileName)); os.IsNotExist(err) {
+ t.Fatalf("Failed to copy override file: %s", profileFileName)
+ }
+ }
+ })
+ }
+}