diff options
Diffstat (limited to 'middleware/kubernetes/util')
-rw-r--r-- | middleware/kubernetes/util/util.go | 12 | ||||
-rw-r--r-- | middleware/kubernetes/util/util_test.go | 33 |
2 files changed, 45 insertions, 0 deletions
diff --git a/middleware/kubernetes/util/util.go b/middleware/kubernetes/util/util.go new file mode 100644 index 000000000..7fc03ffc1 --- /dev/null +++ b/middleware/kubernetes/util/util.go @@ -0,0 +1,12 @@ +// Package kubernetes/util provides helper functions for the kubernetes middleware +package util + +// StringInSlice check whether string a is a member of slice. +func StringInSlice(a string, slice []string) bool { + for _, b := range slice { + if b == a { + return true + } + } + return false +} diff --git a/middleware/kubernetes/util/util_test.go b/middleware/kubernetes/util/util_test.go new file mode 100644 index 000000000..b53b9f3f6 --- /dev/null +++ b/middleware/kubernetes/util/util_test.go @@ -0,0 +1,33 @@ +package util + +import ( + "testing" +) + +type InSliceData struct { + Slice []string + String string + InSlice bool +} + +// Test data for TestStringInSlice cases. +var testdataInSlice = []struct { + Slice []string + String string + ExpectedResult bool +}{ + {[]string{"a", "b", "c"}, "a", true}, + {[]string{"a", "b", "c"}, "d", false}, + {[]string{"a", "b", "c"}, "", false}, + {[]string{}, "a", false}, + {[]string{}, "", false}, +} + +func TestStringInSlice(t *testing.T) { + for _, example := range testdataInSlice { + actualResult := StringInSlice(example.String, example.Slice) + if actualResult != example.ExpectedResult { + t.Errorf("Expected stringInSlice result '%v' for example string='%v', slice='%v'. Instead got result '%v'.", example.ExpectedResult, example.String, example.Slice, actualResult) + } + } +} |