forked from dspinhirne/netaddr-go
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEUI48_test.go
More file actions
64 lines (57 loc) · 1.38 KB
/
EUI48_test.go
File metadata and controls
64 lines (57 loc) · 1.38 KB
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
package netaddr
import "testing"
func TestParseEUI48(t *testing.T) {
cases := []struct {
given string
expectErr bool
}{
{"aa-bb-cc-dd-ee-ff", false},
{"aa:bb:cc:dd:ee:ff", false},
{"aabb.ccdd.eeff", false},
{"aabbccddeeff", false},
{"aabbccddeeff00", true},
{"aa,bb,cc,dd,ee,ff", true},
}
for _, c := range cases {
_, err := ParseEUI48(c.given)
if err != nil {
if !c.expectErr {
t.Errorf("ParseEUI48(%s) unexpected parse error: %s", c.given, err.Error())
}
} else if c.expectErr {
t.Errorf("ParseEUI48(%s) expected error but none raised", c.given)
}
}
}
func TestEUI48_Strings(t *testing.T) {
cases := []struct {
given string
expect string
}{
{"aa-bb-cc-dd-ee-ff", "aa-bb-cc-dd-ee-ff"},
{"aabb.ccdd.eeff", "aa-bb-cc-dd-ee-ff"},
{"aabbccddeeff", "aa-bb-cc-dd-ee-ff"},
{"00:50:fe:00:00:01", "00-50-fe-00-00-01"},
}
for _, c := range cases {
eui, _ := ParseEUI48(c.given)
if eui.String() != c.expect {
t.Errorf("String() expected %s but was %s", c.expect, eui.String())
}
}
}
func TestEUI48_ToEUI64(t *testing.T) {
cases := []struct {
given string
expect string
}{
{"aa-bb-cc-dd-ee-ff", "aa-bb-cc-ff-fe-dd-ee-ff"},
}
for _, c := range cases {
eui, _ := ParseEUI48(c.given)
eui64 := eui.ToEUI64()
if eui64.String() != c.expect {
t.Errorf("%s.ToEUI64() expected %s but was %s", c.given, c.expect, eui64)
}
}
}