chore: remove unused parameter from util funcs; add unit test
Added the unit tests from https://github.com/kubernetes/kubernetes/blob/master/pkg/util/slice/slice_test.go (minus modifier tests) so we can be sure to not change behaviour.
This commit is contained in:
@@ -109,30 +109,23 @@ var SnapshotterListSecretParams = secretParamsMap{
|
||||
}
|
||||
|
||||
// ContainsString checks if a given slice of strings contains the provided string.
|
||||
// If a modifier func is provided, it is called with the slice item before the comparation.
|
||||
func ContainsString(slice []string, s string, modifier func(s string) string) bool {
|
||||
func ContainsString(slice []string, s string) bool {
|
||||
for _, item := range slice {
|
||||
if item == s {
|
||||
return true
|
||||
}
|
||||
if modifier != nil && modifier(item) == s {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// RemoveString returns a newly created []string that contains all items from slice that
|
||||
// are not equal to s and modifier(s) in case modifier func is provided.
|
||||
func RemoveString(slice []string, s string, modifier func(s string) string) []string {
|
||||
// are not equal to s.
|
||||
func RemoveString(slice []string, s string) []string {
|
||||
newSlice := make([]string, 0)
|
||||
for _, item := range slice {
|
||||
if item == s {
|
||||
continue
|
||||
}
|
||||
if modifier != nil && modifier(item) == s {
|
||||
continue
|
||||
}
|
||||
newSlice = append(newSlice, item)
|
||||
}
|
||||
if len(newSlice) == 0 {
|
||||
@@ -371,23 +364,23 @@ func NoResyncPeriodFunc() time.Duration {
|
||||
|
||||
// NeedToAddContentFinalizer checks if a Finalizer needs to be added for the volume snapshot content.
|
||||
func NeedToAddContentFinalizer(content *crdv1.VolumeSnapshotContent) bool {
|
||||
return content.ObjectMeta.DeletionTimestamp == nil && !ContainsString(content.ObjectMeta.Finalizers, VolumeSnapshotContentFinalizer, nil)
|
||||
return content.ObjectMeta.DeletionTimestamp == nil && !ContainsString(content.ObjectMeta.Finalizers, VolumeSnapshotContentFinalizer)
|
||||
}
|
||||
|
||||
// IsSnapshotDeletionCandidate checks if a volume snapshot deletionTimestamp
|
||||
// is set and any finalizer is on the snapshot.
|
||||
func IsSnapshotDeletionCandidate(snapshot *crdv1.VolumeSnapshot) bool {
|
||||
return snapshot.ObjectMeta.DeletionTimestamp != nil && (ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotAsSourceFinalizer, nil) || ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotBoundFinalizer, nil))
|
||||
return snapshot.ObjectMeta.DeletionTimestamp != nil && (ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotAsSourceFinalizer) || ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotBoundFinalizer))
|
||||
}
|
||||
|
||||
// NeedToAddSnapshotAsSourceFinalizer checks if a Finalizer needs to be added for the volume snapshot as a source for PVC.
|
||||
func NeedToAddSnapshotAsSourceFinalizer(snapshot *crdv1.VolumeSnapshot) bool {
|
||||
return snapshot.ObjectMeta.DeletionTimestamp == nil && !ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotAsSourceFinalizer, nil)
|
||||
return snapshot.ObjectMeta.DeletionTimestamp == nil && !ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotAsSourceFinalizer)
|
||||
}
|
||||
|
||||
// NeedToAddSnapshotBoundFinalizer checks if a Finalizer needs to be added for the bound volume snapshot.
|
||||
func NeedToAddSnapshotBoundFinalizer(snapshot *crdv1.VolumeSnapshot) bool {
|
||||
return snapshot.ObjectMeta.DeletionTimestamp == nil && !ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotBoundFinalizer, nil) && IsBoundVolumeSnapshotContentNameSet(snapshot)
|
||||
return snapshot.ObjectMeta.DeletionTimestamp == nil && !ContainsString(snapshot.ObjectMeta.Finalizers, VolumeSnapshotBoundFinalizer) && IsBoundVolumeSnapshotContentNameSet(snapshot)
|
||||
}
|
||||
|
||||
func deprecationWarning(deprecatedParam, newParam, removalVersion string) string {
|
||||
|
@@ -25,6 +25,58 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
func TestContainsString(t *testing.T) {
|
||||
src := []string{"aa", "bb", "cc"}
|
||||
if !ContainsString(src, "bb") {
|
||||
t.Errorf("ContainsString didn't find the string as expected")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRemoveString(t *testing.T) {
|
||||
tests := []struct {
|
||||
testName string
|
||||
input []string
|
||||
remove string
|
||||
want []string
|
||||
}{
|
||||
{
|
||||
testName: "Nil input slice",
|
||||
input: nil,
|
||||
remove: "",
|
||||
want: nil,
|
||||
},
|
||||
{
|
||||
testName: "Slice doesn't contain the string",
|
||||
input: []string{"a", "ab", "cdef"},
|
||||
remove: "NotPresentInSlice",
|
||||
want: []string{"a", "ab", "cdef"},
|
||||
},
|
||||
{
|
||||
testName: "All strings removed, result is nil",
|
||||
input: []string{"a"},
|
||||
remove: "a",
|
||||
want: nil,
|
||||
},
|
||||
{
|
||||
testName: "One string removed",
|
||||
input: []string{"a", "ab", "cdef"},
|
||||
remove: "ab",
|
||||
want: []string{"a", "cdef"},
|
||||
},
|
||||
{
|
||||
testName: "All(three) strings removed",
|
||||
input: []string{"ab", "a", "ab", "cdef", "ab"},
|
||||
remove: "ab",
|
||||
want: []string{"a", "cdef"},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
if got := RemoveString(tt.input, tt.remove); !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("%v: RemoveString(%v, %q) = %v WANT %v", tt.testName, tt.input, tt.remove, got, tt.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetSecretReference(t *testing.T) {
|
||||
testcases := map[string]struct {
|
||||
secretParams secretParamsMap
|
||||
|
Reference in New Issue
Block a user