...
1 package cmd
2
3 import (
4 "strings"
5 "testing"
6 )
7
8 func TestValidateRangeSlice(t *testing.T) {
9 assertNoError(t, validateRangeSlice(nil))
10 assertNoError(t, validateRangeSlice([]string{}))
11 assertNoError(t, validateRangeSlice([]string{"23"}))
12 assertNoError(t, validateRangeSlice([]string{"23-23"}))
13 assertNoError(t, validateRangeSlice([]string{"25-27"}))
14
15 assertError(t, validateRangeSlice([]string{""}), "not a valid port")
16 assertError(t, validateRangeSlice([]string{"notanumber"}), "not a valid port")
17 assertError(t, validateRangeSlice([]string{"not-number"}), "not a valid lower-bound")
18 assertError(t, validateRangeSlice([]string{"-23-25"}), "ranges expected as")
19 assertError(t, validateRangeSlice([]string{"-23"}), "not a valid lower-bound")
20 assertError(t, validateRangeSlice([]string{"25-23"}), "upper-bound must be greater than or equal to")
21 assertError(t, validateRangeSlice([]string{"65536"}), "not a valid port")
22 assertError(t, validateRangeSlice([]string{"10-65536"}), "not a valid upper-bound")
23 }
24
25 func assertNoError(t *testing.T, err error) {
26 if err != nil {
27 t.Fatalf("expected no error; got %s", err)
28 }
29 }
30
31
32 func assertError(t *testing.T, err error, containing string) {
33 if err == nil {
34 t.Fatalf("expected error containing '%s' but got nothing", containing)
35 }
36 if !strings.Contains(err.Error(), containing) {
37 t.Fatalf("expected error to contain '%s' but received '%s'", containing, err.Error())
38 }
39 }
40
View as plain text