diff options
| author | Alex Flint <[email protected]> | 2016-01-23 21:07:42 -0800 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2016-01-23 21:07:42 -0800 |
| commit | 77dd0df006f564a0768ee7ddc194f08e328f864e (patch) | |
| tree | d71dab9fd1abdac627ed1d17616e226897c50093 /parse_test.go | |
| parent | c0809e537fc01b4a33ced1bf56212837108d7264 (diff) | |
| parent | a1c72f6aa9b1972a6d0e0c47052e805a0f1f3656 (diff) | |
Merge pull request #31 from alexflint/parse_ip_mac_and_email
Parse IP addresses, MAC addresses, and email addresses
Diffstat (limited to 'parse_test.go')
| -rw-r--r-- | parse_test.go | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go index a915910..e33fe76 100644 --- a/parse_test.go +++ b/parse_test.go @@ -1,6 +1,8 @@ package arg import ( + "net" + "net/mail" "os" "strings" "testing" @@ -541,3 +543,74 @@ 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) +} + +func TestMAC(t *testing.T) { + var args struct { + Host net.HardwareAddr + } + err := parse("--host 0123.4567.89ab", &args) + require.NoError(t, err) + assert.Equal(t, "01:23:45:67:89:ab", args.Host.String()) +} + +func TestInvalidMac(t *testing.T) { + var args struct { + Host net.HardwareAddr + } + err := parse("--host xxx", &args) + assert.Error(t, err) +} + +func TestMailAddr(t *testing.T) { + var args struct { + Recipient mail.Address + } + err := parse("--recipient [email protected]", &args) + require.NoError(t, err) + assert.Equal(t, "<[email protected]>", args.Recipient.String()) +} + +func TestInvalidMailAddr(t *testing.T) { + var args struct { + Recipient mail.Address + } + err := parse("--recipient xxx", &args) + assert.Error(t, err) +} |
