@@ -9,35 +9,121 @@ import (
99 "github.com/stretchr/testify/assert"
1010)
1111
12+ var testVpnRegion = VpnRegion {
13+ ID : "test-region" ,
14+ Country : "Test Country" ,
15+ Continent : "Test Continent" ,
16+ CountryISO : "TC" ,
17+ RegionName : "Test Region" ,
18+ }
19+
1220func TestVPNRegionsService_GetByPage (t * testing.T ) {
1321 // Create test server
1422 server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
23+ // Handle auth token request
24+ if r .URL .Path == "/api/v1/oauth/token" {
25+ w .Header ().Set ("Content-Type" , "application/json" )
26+ err := json .NewEncoder (w ).Encode (map [string ]string {
27+ "access_token" : "test-token" ,
28+ })
29+ assert .NoError (t , err )
30+ return
31+ }
32+
33+ // Handle VPN regions request
1534 assert .Equal (t , "/api/v1/vpn-regions" , r .URL .Path )
1635 assert .Equal (t , "page=0&size=10" , r .URL .RawQuery )
1736
1837 response := VPNRegionPageResponse {
19- Content : []VpnRegion {
20- {
21- ID : "test-region" ,
22- Country : "Test Country" ,
23- Continent : "Test Continent" ,
24- CountryISO : "TC" ,
25- },
26- },
38+ Content : []VpnRegion {testVpnRegion },
2739 Success : true ,
2840 NumberOfElements : 1 ,
2941 TotalElements : 1 ,
3042 }
3143
32- json .NewEncoder (w ).Encode (response )
44+ err := json .NewEncoder (w ).Encode (response )
45+ assert .NoError (t , err )
3346 }))
3447 defer server .Close ()
3548
36- client , _ := NewClient (server .URL , "test" , "test" )
49+ client , err := NewClient (server .URL , "test" , "test" )
50+ assert .NoError (t , err )
3751 response , err := client .VPNRegions .GetByPage (0 , 10 )
3852
3953 assert .NoError (t , err )
4054 assert .True (t , response .Success )
4155 assert .Equal (t , 1 , len (response .Content ))
42- assert .Equal (t , "test-region" , response .Content [0 ].ID )
56+ assert .Equal (t , testVpnRegion .ID , response .Content [0 ].ID )
57+ }
58+
59+ func TestVPNRegionsService_List (t * testing.T ) {
60+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
61+ // Handle auth token request
62+ if r .URL .Path == "/api/v1/oauth/token" {
63+ w .Header ().Set ("Content-Type" , "application/json" )
64+ err := json .NewEncoder (w ).Encode (map [string ]string {
65+ "access_token" : "test-token" ,
66+ })
67+ assert .NoError (t , err )
68+ return
69+ }
70+
71+ // Handle VPN regions request
72+ assert .Equal (t , "/api/v1/vpn-regions" , r .URL .Path )
73+
74+ response := VPNRegionPageResponse {
75+ Content : []VpnRegion {testVpnRegion },
76+ Success : true ,
77+ NumberOfElements : 1 ,
78+ TotalElements : 1 ,
79+ TotalPages : 1 ,
80+ }
81+
82+ err := json .NewEncoder (w ).Encode (response )
83+ assert .NoError (t , err )
84+ }))
85+ defer server .Close ()
86+
87+ client , err := NewClient (server .URL , "test" , "test" )
88+ assert .NoError (t , err )
89+ regions , err := client .VPNRegions .List ()
90+
91+ assert .NoError (t , err )
92+ assert .Equal (t , 1 , len (regions ))
93+ assert .Equal (t , testVpnRegion .ID , regions [0 ].ID )
94+ }
95+
96+ func TestVPNRegionsService_GetByID (t * testing.T ) {
97+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
98+ // Handle auth token request
99+ if r .URL .Path == "/api/v1/oauth/token" {
100+ w .Header ().Set ("Content-Type" , "application/json" )
101+ err := json .NewEncoder (w ).Encode (map [string ]string {
102+ "access_token" : "test-token" ,
103+ })
104+ assert .NoError (t , err )
105+ return
106+ }
107+
108+ // Handle VPN regions request
109+ assert .Equal (t , "/api/v1/regions" , r .URL .Path )
110+
111+ err := json .NewEncoder (w ).Encode ([]VpnRegion {testVpnRegion })
112+ assert .NoError (t , err )
113+ }))
114+ defer server .Close ()
115+
116+ client , err := NewClient (server .URL , "test" , "test" )
117+ assert .NoError (t , err )
118+
119+ // Test existing region
120+ region , err := client .VPNRegions .GetByID (testVpnRegion .ID )
121+ assert .NoError (t , err )
122+ assert .NotNil (t , region )
123+ assert .Equal (t , testVpnRegion .ID , region .ID )
124+
125+ // Test non-existent region
126+ region , err = client .VPNRegions .GetByID ("non-existent" )
127+ assert .NoError (t , err )
128+ assert .Nil (t , region )
43129}
0 commit comments