7 "github.com/stretchr/testify/assert"
8 "github.com/stretchr/testify/require"
11 func TestNewNetAddress(t *testing.T) {
12 assert, require := assert.New(t), require.New(t)
14 tcpAddr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:8080")
16 addr := NewNetAddress(tcpAddr)
18 assert.Equal("127.0.0.1:8080", addr.String())
20 assert.NotPanics(func() {
21 NewNetAddress(&net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 8000})
22 }, "Calling NewNetAddress with UDPAddr should not panic in testing")
25 func TestNewNetAddressString(t *testing.T) {
26 assert := assert.New(t)
32 {"127.0.0.1:8080", true},
33 // {"127.0.0:8080", false},
35 {"127.0.0.1:a", false},
38 {"127.0.0:8080000", false},
41 for _, t := range tests {
42 addr, err := NewNetAddressString(t.addr)
44 if assert.Nil(err, t.addr) {
45 assert.Equal(t.addr, addr.String())
48 assert.NotNil(err, t.addr)
53 func TestNewNetAddressStrings(t *testing.T) {
54 assert, require := assert.New(t), require.New(t)
55 addrs, err := NewNetAddressStrings([]string{"127.0.0.1:8080", "127.0.0.2:8080"})
58 assert.Equal(2, len(addrs))
61 func TestNewNetAddressIPPort(t *testing.T) {
62 assert := assert.New(t)
63 addr := NewNetAddressIPPort(net.ParseIP("127.0.0.1"), 8080)
65 assert.Equal("127.0.0.1:8080", addr.String())
68 func TestNetAddressProperties(t *testing.T) {
69 assert, require := assert.New(t), require.New(t)
71 // TODO add more test cases
78 {"127.0.0.1:8080", true, true, false},
79 {"ya.ru:80", true, false, true},
82 for _, t := range tests {
83 addr, err := NewNetAddressString(t.addr)
86 assert.Equal(t.valid, addr.Valid())
87 assert.Equal(t.local, addr.Local())
88 assert.Equal(t.routable, addr.Routable())
92 func TestNetAddressReachabilityTo(t *testing.T) {
93 assert, require := assert.New(t), require.New(t)
95 // TODO add more test cases
101 {"127.0.0.1:8080", "127.0.0.1:8081", 0},
102 {"ya.ru:80", "127.0.0.1:8080", 1},
105 for _, t := range tests {
106 addr, err := NewNetAddressString(t.addr)
109 other, err := NewNetAddressString(t.other)
112 assert.Equal(t.reachability, addr.ReachabilityTo(other))