Skip to content

Commit 498ccde

Browse files
committed
Enhance VPN Regions test coverage with comprehensive test cases
Signed-off-by: Denis Arslanbekov <denis@arslanbekov.com>
1 parent 5269ec5 commit 498ccde

File tree

1 file changed

+97
-11
lines changed

1 file changed

+97
-11
lines changed

cloudconnexa/vpn_regions_test.go

Lines changed: 97 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
1220
func 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

Comments
 (0)