@@ -10,87 +10,120 @@ import (
1010// TestUnmarshalIPAddresses tests that IPAddresses and IPAddress structs are unmarshaled correctly
1111func TestUnmarshalIPAddresses (t * testing.T ) {
1212 originalJSON := `
13- {
14- "ip_addresses": {
15- "ip_address": [
16- {
17- "access": "private",
18- "address": "10.0.0.0",
19- "family": "IPv4",
20- "ptr_record": "",
21- "server": "0053cd80-5945-4105-9081-11192806a8f7"
22- },
23- {
24- "access": "private",
25- "address": "10.0.0.1",
26- "family": "IPv4",
27- "ptr_record": "",
28- "server": "006b6701-55d2-4374-ac40-56cc1501037f"
29- },
30- {
31- "access": "public",
32- "address": "x.x.x.x",
33- "family": "IPv4",
34- "part_of_plan": "yes",
35- "ptr_record": "x-x-x-x.zone.upcloud.host",
36- "server": "0053cd80-5945-4105-9081-11192806a8f7"
37- },
38- {
39- "access": "public",
40- "address": "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx",
41- "family": "IPv6",
42- "ptr_record": "xxxx-xxxx-xxxx-xxxx.v6.zone.upcloud.host",
43- "server": "006b6701-55d2-4374-ac40-56cc1501037f"
44- }
45- ]
46- }
47- }
48- `
13+ {
14+ "ip_addresses": {
15+ "ip_address": [
16+ {
17+ "access": "utility",
18+ "address": "10.0.0.0",
19+ "family": "IPv4",
20+ "ptr_record": "",
21+ "server": "0053cd80-5945-4105-9081-11192806a8f7",
22+ "mac": "mm:mm:mm:mm:mm:m1",
23+ "floating": "no",
24+ "zone": "fi-hel2"
25+ },
26+ {
27+ "access": "utility",
28+ "address": "10.0.0.1",
29+ "family": "IPv4",
30+ "ptr_record": "",
31+ "server": "006b6701-55d2-4374-ac40-56cc1501037f",
32+ "mac": "mm:mm:mm:mm:mm:m2",
33+ "floating": "no",
34+ "zone": "de-fra1"
35+ },
36+ {
37+ "access": "public",
38+ "address": "x.x.x.x",
39+ "family": "IPv4",
40+ "part_of_plan": "yes",
41+ "ptr_record": "x-x-x-x.zone.upcloud.host",
42+ "server": "0053cd80-5945-4105-9081-11192806a8f7",
43+ "mac": "mm:mm:mm:mm:mm:m1",
44+ "floating": "yes",
45+ "zone": "de-fra1"
46+ },
47+ {
48+ "access": "public",
49+ "address": "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx",
50+ "family": "IPv6",
51+ "ptr_record": "xxxx-xxxx-xxxx-xxxx.v6.zone.upcloud.host",
52+ "server": "006b6701-55d2-4374-ac40-56cc1501037f",
53+ "mac": "mm:mm:mm:mm:mm:m3",
54+ "floating": "no",
55+ "zone": "fi-hel1"
56+ },
57+ {
58+ "access": "public",
59+ "address": "y.y.y.y",
60+ "family": "IPv4",
61+ "ptr_record": "y.y.y.y.zone.host.upcloud.com",
62+ "floating": "yes",
63+ "zone": "nl-ams1"
64+ }
65+ ]
66+ }
67+ }
68+ `
4969
5070 ipAddresses := IPAddresses {}
5171 err := json .Unmarshal ([]byte (originalJSON ), & ipAddresses )
5272 assert .NoError (t , err )
53- assert .Len (t , ipAddresses .IPAddresses , 4 )
73+ assert .Len (t , ipAddresses .IPAddresses , 5 )
5474
5575 testData := []IPAddress {
5676 {
57- Access : IPAddressAccessPrivate ,
77+ Access : IPAddressAccessUtility ,
5878 Address : "10.0.0.0" ,
5979 Family : IPAddressFamilyIPv4 ,
6080 PTRRecord : "" ,
6181 ServerUUID : "0053cd80-5945-4105-9081-11192806a8f7" ,
82+ MAC : "mm:mm:mm:mm:mm:m1" ,
83+ Zone : "fi-hel2" ,
6284 },
6385 {
64- Access : IPAddressAccessPrivate ,
86+ Access : IPAddressAccessUtility ,
6587 Address : "10.0.0.1" ,
6688 Family : IPAddressFamilyIPv4 ,
6789 PTRRecord : "" ,
6890 ServerUUID : "006b6701-55d2-4374-ac40-56cc1501037f" ,
91+ MAC : "mm:mm:mm:mm:mm:m2" ,
92+ Zone : "de-fra1" ,
6993 },
7094 {
7195 Access : IPAddressAccessPublic ,
7296 Address : "x.x.x.x" ,
7397 Family : IPAddressFamilyIPv4 ,
74- PartOfPlan : "yes" ,
98+ PartOfPlan : true ,
7599 PTRRecord : "x-x-x-x.zone.upcloud.host" ,
76100 ServerUUID : "0053cd80-5945-4105-9081-11192806a8f7" ,
101+ Floating : true ,
102+ MAC : "mm:mm:mm:mm:mm:m1" ,
103+ Zone : "de-fra1" ,
77104 },
78105 {
79106 Access : IPAddressAccessPublic ,
80107 Address : "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx" ,
81108 Family : IPAddressFamilyIPv6 ,
82109 PTRRecord : "xxxx-xxxx-xxxx-xxxx.v6.zone.upcloud.host" ,
83110 ServerUUID : "006b6701-55d2-4374-ac40-56cc1501037f" ,
111+ MAC : "mm:mm:mm:mm:mm:m3" ,
112+ Zone : "fi-hel1" ,
113+ },
114+ {
115+ Access : IPAddressAccessPublic ,
116+ Address : "y.y.y.y" ,
117+ Family : IPAddressFamilyIPv4 ,
118+ PTRRecord : "y.y.y.y.zone.host.upcloud.com" ,
119+ Floating : true ,
120+ Zone : "nl-ams1" ,
84121 },
85122 }
86123
87124 for i , v := range testData {
88125 address := ipAddresses .IPAddresses [i ]
89- assert .Equal (t , v .Access , address .Access )
90- assert .Equal (t , v .Address , address .Address )
91- assert .Equal (t , v .Family , address .Family )
92- assert .Equal (t , v .PTRRecord , address .PTRRecord )
93- assert .Equal (t , v .ServerUUID , address .ServerUUID )
126+ assert .Equal (t , v , address )
94127 }
95128}
96129
0 commit comments