Files
kustomize/pkg/patch/strategicmerge_test.go
2019-06-25 11:05:56 +09:00

84 lines
2.1 KiB
Go

// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.
package patch
import (
"testing"
"sigs.k8s.io/kustomize/v3/pkg/types"
)
func buildPatchStrategicMergeSlice(patchStrings []string) []types.PatchStrategicMerge {
var patches []types.PatchStrategicMerge
for _, patchString := range patchStrings {
patches = append(patches, types.PatchStrategicMerge(patchString))
}
return patches
}
func TestAppend(t *testing.T) {
patchStrings := []string{"patch1.yaml", "patch2.yaml"}
patches := buildPatchStrategicMergeSlice(patchStrings)
patches = Append(patches, "patch3.yaml")
for i, k := range []string{"patch1.yaml", "patch2.yaml", "patch3.yaml"} {
if patches[i] != types.PatchStrategicMerge(k) {
t.Fatalf("patches[%d] must be %s, got %s", i, k, patches[i])
}
}
}
func TestExistTrue(t *testing.T) {
patchStrings := []string{"patch1.yaml", "patch2.yaml"}
patches := buildPatchStrategicMergeSlice(patchStrings)
for _, patchString := range patchStrings {
if !Exist(patches, patchString) {
t.Fatalf("%s must exist", patchString)
}
}
}
func TestExistFalse(t *testing.T) {
patchStrings := []string{"patch1.yaml", "patch2.yaml"}
patches := buildPatchStrategicMergeSlice(patchStrings)
for _, patchString := range []string{"invalid1.yaml", "invalid2.yaml"} {
if Exist(patches, patchString) {
t.Fatalf("%s must not exist", patchString)
}
}
}
func TestDelete(t *testing.T) {
patchStrings := []string{"patch1.yaml", "patch2.yaml"}
patches := buildPatchStrategicMergeSlice(patchStrings)
patches = Delete(patches, "patch1.yaml")
if Exist(patches, "patch1.yaml") {
t.Fatalf("patch1.yaml should be deleted")
}
if !Exist(patches, "patch2.yaml") {
t.Fatalf("patch2.yaml should exist")
}
if len(patches) != 1 {
t.Fatalf("Length of slice must be 1: actual %d", len(patches))
}
}
func TestDeleteMultiple(t *testing.T) {
patchStrings := []string{"patch1.yaml", "patch2.yaml"}
patches := buildPatchStrategicMergeSlice(patchStrings)
patches = Delete(patches, "patch2.yaml", "patch4.yaml", "patch1.yaml", "patch3.yaml")
for _, k := range patchStrings {
if Exist(patches, k) {
t.Fatalf("%s should be deleted", k)
}
}
}