linkerd2/cli/cmd/range_slice_test.go

40 lines
1.5 KiB
Go

package cmd
import (
"strings"
"testing"
)
func TestValidateRangeSlice(t *testing.T) {
assertNoError(t, validateRangeSlice(nil))
assertNoError(t, validateRangeSlice([]string{}))
assertNoError(t, validateRangeSlice([]string{"23"}))
assertNoError(t, validateRangeSlice([]string{"23-23"}))
assertNoError(t, validateRangeSlice([]string{"25-27"}))
assertError(t, validateRangeSlice([]string{""}), "not a valid port")
assertError(t, validateRangeSlice([]string{"notanumber"}), "not a valid port")
assertError(t, validateRangeSlice([]string{"not-number"}), "not a valid lower-bound")
assertError(t, validateRangeSlice([]string{"-23-25"}), "ranges expected as")
assertError(t, validateRangeSlice([]string{"-23"}), "not a valid lower-bound")
assertError(t, validateRangeSlice([]string{"25-23"}), "upper-bound must be greater than or equal to")
assertError(t, validateRangeSlice([]string{"65536"}), "not a valid port")
assertError(t, validateRangeSlice([]string{"10-65536"}), "not a valid upper-bound")
}
func assertNoError(t *testing.T, err error) {
if err != nil {
t.Fatalf("expected no error; got %s", err)
}
}
// assertError confirms that the provided is an error having the provided message.
func assertError(t *testing.T, err error, containing string) {
if err == nil {
t.Fatalf("expected error containing '%s' but got nothing", containing)
}
if !strings.Contains(err.Error(), containing) {
t.Fatalf("expected error to contain '%s' but received '%s'", containing, err.Error())
}
}