Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package net
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestToUint32(t *testing.T) {
tests := []struct {
name string
val uint64
expected uint32
}{
{
name: "IP: 172.24.5.1",
val: 2887255297,
expected: 2887255297,
},
{
name: "bigger than IPv4 address",
val: 2887255295 + 17179869184,
expected: 2887255295,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
ip := IP{
lower: test.val,
}
assert.Equal(t, test.expected, ip.ToUint32())
})
}
}
func TestCompare(t *testing.T) {
tests := []struct {
name string
lower: 100,
higher: 200,
},
expected: 0,
},
{
name: "greater higher word",
lower: 456,
higher: 100,
},
expected: 1,
},
{
name: "lesser higher word",
lower: 456,
higher: 200,
},
expected: -1,
},
{
name: "equal higher word but lesser lower word",
lower: 123,
higher: 100,
},
expected: 1,
},
{
name: "equal higher word but lesser lower word",
lower: 456,
higher: 100,
},
expected: -1,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
assert.Equal(t, test.expected, test.ip.Compare(test.other))
})
}
}
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
func TestIPString(t *testing.T) {
tests := []struct {
ip IP
expected string
}{
{
ip: IPv4(strAddr("192.168.0.1")),
expected: "192.168.0.1",
},
{
ip: IPv4(strAddr("0.0.0.0")),
expected: "0.0.0.0",
},
{
ip: IPv4(strAddr("255.255.255.255")),
expected: "255.255.255.255",
},
{
ip: IPv6(0, 0),
expected: "0:0:0:0:0:0:0:0",
},
{
ip: IPv6(2306131596687708724, 6230974922281175806),
expected: "2001:678:1E0:1234:5678:DEAD:BEEF:CAFE",
},
{
ip: IPv6(^uint64(0), ^uint64(0)),
expected: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF",
},
}
for _, test := range tests {
assert.Equal(t, test.expected, test.ip.String())
}
}