@@ -9,13 +9,43 @@ import (
99 "github.com/UpCloudLtd/upcloud-go-api/v5/upcloud"
1010)
1111
12+ func TestMarshalGetNetworks (t * testing.T ) {
13+ request := GetNetworksRequest {}
14+ assert .Equal (t , "/network" , request .RequestURL ())
15+
16+ request = GetNetworksRequest {Filters : []QueryFilter {
17+ FilterLabel {Label : upcloud.Label {
18+ Key : "env" ,
19+ Value : "test" ,
20+ }},
21+ FilterLabelKey {Key : "managedBy" },
22+ }}
23+
24+ assert .Equal (t , "/network?label=env%3Dtest&label=managedBy" , request .RequestURL ())
25+ }
26+
1227// TestMarshalGetNetworksInZoneRequest tests that GetNetworksInZoneRequest behaves correctly
1328func TestMarshalGetNetworksInZoneRequest (t * testing.T ) {
1429 request := GetNetworksInZoneRequest {
1530 Zone : "foo" ,
1631 }
1732
1833 assert .Equal (t , "/network/?zone=foo" , request .RequestURL ())
34+
35+ requestWithFilters := GetNetworksInZoneRequest {
36+ Zone : "fi-hel1" ,
37+ Filters : []QueryFilter {
38+ FilterLabel {Label : upcloud.Label {
39+ Key : "env" ,
40+ Value : "test" ,
41+ }},
42+ FilterLabelKey {
43+ Key : "managed" ,
44+ },
45+ },
46+ }
47+
48+ assert .Equal (t , "/network?zone=fi-hel1&label=env%3Dtest&label=managed" , requestWithFilters .RequestURL ())
1949}
2050
2151// TestMarshalGetNetworkDetailsRequest tests that GetNetworkDetailsRequest behaves correctly
@@ -33,6 +63,12 @@ func TestMarshalCreateNetworkRequest(t *testing.T) {
3363 Name : "Test private net" ,
3464 Zone : "uk-lon1" ,
3565 Router : "04c0df35-2658-4b0c-8ac7-962090f4e92a" ,
66+ Labels : []upcloud.Label {
67+ {
68+ Key : "env" ,
69+ Value : "test" ,
70+ },
71+ },
3672 IPNetworks : []upcloud.IPNetwork {
3773 {
3874 Address : "172.16.0.0/22" ,
@@ -54,6 +90,12 @@ func TestMarshalCreateNetworkRequest(t *testing.T) {
5490 "name": "Test private net",
5591 "zone": "uk-lon1",
5692 "router": "04c0df35-2658-4b0c-8ac7-962090f4e92a",
93+ "labels": [
94+ {
95+ "key": "env",
96+ "value": "test"
97+ }
98+ ],
5799 "ip_networks" : {
58100 "ip_network" : [
59101 {
@@ -114,6 +156,36 @@ func TestMarshalModifyNetworkRequest(t *testing.T) {
114156 assert .NoError (t , err )
115157 assert .Equal (t , "/network/foo" , request .RequestURL ())
116158 assert .JSONEq (t , expectedJSON , string (actualJSON ))
159+
160+ request = ModifyNetworkRequest {
161+ UUID : "foo" ,
162+ Name : "supername" ,
163+ Labels : & []upcloud.Label {
164+ {
165+ Key : "env" ,
166+ Value : "test" ,
167+ },
168+ },
169+ }
170+
171+ expectedJSON = `
172+ {
173+ "network": {
174+ "name": "supername",
175+ "labels": [
176+ {
177+ "key": "env",
178+ "value": "test"
179+ }
180+ ]
181+ }
182+ }
183+ `
184+
185+ actualJSON , err = json .Marshal (& request )
186+ assert .NoError (t , err )
187+ assert .Equal (t , "/network/foo" , request .RequestURL ())
188+ assert .JSONEq (t , expectedJSON , string (actualJSON ))
117189}
118190
119191// TestMarshalDeleteNetwork tests the DeleteNetworkRequest behaves correctly
0 commit comments