-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnetworktype_test.go
90 lines (82 loc) · 1.76 KB
/
networktype_test.go
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package ice
import (
"net"
"testing"
"github.com/stretchr/testify/assert"
)
func TestNetworkTypeParsing_Success(t *testing.T) {
ipv4 := net.ParseIP("192.168.0.1")
ipv6 := net.ParseIP("fe80::a3:6ff:fec4:5454")
for _, test := range []struct {
name string
inNetwork string
inIP net.IP
expected NetworkType
}{
{
"lowercase UDP4",
"udp",
ipv4,
NetworkTypeUDP4,
},
{
"uppercase UDP4",
"UDP",
ipv4,
NetworkTypeUDP4,
},
{
"lowercase UDP6",
"udp",
ipv6,
NetworkTypeUDP6,
},
{
"uppercase UDP6",
"UDP",
ipv6,
NetworkTypeUDP6,
},
} {
actual, err := determineNetworkType(test.inNetwork, test.inIP)
if err != nil {
t.Errorf("NetworkTypeParsing failed: %v", err)
}
if actual != test.expected {
t.Errorf("NetworkTypeParsing: '%s' -- input:%s expected:%s actual:%s",
test.name, test.inNetwork, test.expected, actual)
}
}
}
func TestNetworkTypeParsing_Failure(t *testing.T) {
ipv6 := net.ParseIP("fe80::a3:6ff:fec4:5454")
for _, test := range []struct {
name string
inNetwork string
inIP net.IP
}{
{
"invalid network",
"junkNetwork",
ipv6,
},
} {
actual, err := determineNetworkType(test.inNetwork, test.inIP)
if err == nil {
t.Errorf("NetworkTypeParsing should fail: '%s' -- input:%s actual:%s",
test.name, test.inNetwork, actual)
}
}
}
func TestNetworkTypeIsUDP(t *testing.T) {
assert.True(t, NetworkTypeUDP4.IsUDP())
assert.True(t, NetworkTypeUDP6.IsUDP())
assert.False(t, NetworkTypeUDP4.IsTCP())
assert.False(t, NetworkTypeUDP6.IsTCP())
}
func TestNetworkTypeIsTCP(t *testing.T) {
assert.True(t, NetworkTypeTCP4.IsTCP())
assert.True(t, NetworkTypeTCP6.IsTCP())
assert.False(t, NetworkTypeTCP4.IsUDP())
assert.False(t, NetworkTypeTCP6.IsUDP())
}