summaryrefslogtreecommitdiff
path: root/parse_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2016-01-23 20:55:40 -0800
committerAlex Flint <[email protected]>2016-01-23 20:55:40 -0800
commit9a30acda0542a376f35ce2fc0cc166d9ac48c709 (patch)
treefdd9f9797bd13951e32b95f39de289ba9bb14a89 /parse_test.go
parente389d7f782c50124fbac2f2bbcb4c5794f8e2f44 (diff)
added tests for IP address parsing
Diffstat (limited to 'parse_test.go')
-rw-r--r--parse_test.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go
index a915910..5714ebf 100644
--- a/parse_test.go
+++ b/parse_test.go
@@ -1,6 +1,7 @@
package arg
import (
+ "net"
"os"
"strings"
"testing"
@@ -541,3 +542,40 @@ func TestSliceUnmarhsaler(t *testing.T) {
assert.EqualValues(t, 5, (*args.Foo)[0])
assert.Equal(t, "xyz", args.Bar)
}
+
+func TestIP(t *testing.T) {
+ var args struct {
+ Host net.IP
+ }
+ err := parse("--host 192.168.0.1", &args)
+ require.NoError(t, err)
+ assert.Equal(t, "192.168.0.1", args.Host.String())
+}
+
+func TestPtrToIP(t *testing.T) {
+ var args struct {
+ Host *net.IP
+ }
+ err := parse("--host 192.168.0.1", &args)
+ require.NoError(t, err)
+ assert.Equal(t, "192.168.0.1", args.Host.String())
+}
+
+func TestIPSlice(t *testing.T) {
+ var args struct {
+ Host []net.IP
+ }
+ err := parse("--host 192.168.0.1 127.0.0.1", &args)
+ require.NoError(t, err)
+ require.Len(t, args.Host, 2)
+ assert.Equal(t, "192.168.0.1", args.Host[0].String())
+ assert.Equal(t, "127.0.0.1", args.Host[1].String())
+}
+
+func TestInvalidIPAddress(t *testing.T) {
+ var args struct {
+ Host net.IP
+ }
+ err := parse("--host xxx", &args)
+ assert.Error(t, err)
+}