Skip to content

Commit 4ea202f

Browse files
authored
feat(client): added 1st client
1 parent 2777c1e commit 4ea202f

File tree

1 file changed

+167
-167
lines changed

1 file changed

+167
-167
lines changed

client_test.go

Lines changed: 167 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -1,224 +1,224 @@
11
package freeproxy
22

33
import (
4-
"encoding/json"
5-
"net/http"
6-
"net/http/httptest"
7-
"testing"
4+
"encoding/json"
5+
"net/http"
6+
"net/http/httptest"
7+
"testing"
88
)
99

1010
func TestNew(t *testing.T) {
11-
apiKey := "test-api-key"
11+
apiKey := "test-api-key"
1212

13-
client := New(apiKey)
13+
client := New(apiKey)
1414

15-
if client.apiKey != apiKey {
16-
t.Errorf("expected apiKey %q, got %q", apiKey, client.apiKey)
17-
}
18-
if client.httpClient == nil {
19-
t.Error("expected default httpClient to be set, got nil")
20-
}
21-
if client.proxiesURL != ProxiesURL {
22-
t.Errorf("expected proxiesURL %q, got %q", ProxiesURL, client.proxiesURL)
23-
}
15+
if client.apiKey != apiKey {
16+
t.Errorf("expected apiKey %q, got %q", apiKey, client.apiKey)
17+
}
18+
if client.httpClient == nil {
19+
t.Error("expected default httpClient to be set, got nil")
20+
}
21+
if client.proxiesURL != ProxiesURL {
22+
t.Errorf("expected proxiesURL %q, got %q", ProxiesURL, client.proxiesURL)
23+
}
2424
}
2525

2626
func TestNewWith(t *testing.T) {
27-
apiKey := "test-api-key"
28-
httpClient := &http.Client{}
27+
apiKey := "test-api-key"
28+
httpClient := &http.Client{}
2929

30-
client := NewWith(apiKey, httpClient)
30+
client := NewWith(apiKey, httpClient)
3131

32-
if client.apiKey != apiKey {
33-
t.Errorf("expected apiKey %q, got %q", apiKey, client.apiKey)
34-
}
35-
if client.httpClient != httpClient {
36-
t.Error("expected custom httpClient to be set")
37-
}
38-
if client.proxiesURL != ProxiesURL {
39-
t.Errorf("expected proxiesURL %q, got %q", ProxiesURL, client.proxiesURL)
40-
}
32+
if client.apiKey != apiKey {
33+
t.Errorf("expected apiKey %q, got %q", apiKey, client.apiKey)
34+
}
35+
if client.httpClient != httpClient {
36+
t.Error("expected custom httpClient to be set")
37+
}
38+
if client.proxiesURL != ProxiesURL {
39+
t.Errorf("expected proxiesURL %q, got %q", ProxiesURL, client.proxiesURL)
40+
}
4141
}
4242

4343
func TestNewWithNilHTTPClient(t *testing.T) {
44-
apiKey := "test-api-key"
44+
apiKey := "test-api-key"
4545

46-
client := NewWith(apiKey, nil)
46+
client := NewWith(apiKey, nil)
4747

48-
if client.httpClient == nil {
49-
t.Error("expected default httpClient to be set, got nil")
50-
}
48+
if client.httpClient == nil {
49+
t.Error("expected default httpClient to be set, got nil")
50+
}
5151
}
5252

5353
func TestQueryWithOptions(t *testing.T) {
54-
mockResponse := []Proxy{
55-
{
56-
ID: "1",
57-
Protocol: "socks5",
58-
IP: "192.168.1.1",
59-
Port: 1080,
60-
User: "user1",
61-
Passwd: "pass1",
62-
CountryCode: "US",
63-
Region: "New York",
64-
AsnNumber: "AS1234",
65-
AsnName: "Test ASN",
66-
Anonymity: "Elite",
67-
Uptime: 99,
68-
ResponseTime: 0.5,
69-
LastAliveAt: "2025-11-18T10:00:00Z",
70-
ProxyUrl: "socks5://user1:pass1@192.168.1.1:1080",
71-
Https: true,
72-
Google: true,
73-
},
74-
}
54+
mockResponse := []Proxy{
55+
{
56+
ID: "1",
57+
Protocol: "socks5",
58+
IP: "192.168.1.1",
59+
Port: 1080,
60+
User: "user1",
61+
Passwd: "pass1",
62+
CountryCode: "US",
63+
Region: "New York",
64+
AsnNumber: "AS1234",
65+
AsnName: "Test ASN",
66+
Anonymity: "Elite",
67+
Uptime: 99,
68+
ResponseTime: 0.5,
69+
LastAliveAt: "2025-11-18T10:00:00Z",
70+
ProxyUrl: "socks5://user1:pass1@192.168.1.1:1080",
71+
Https: true,
72+
Google: true,
73+
},
74+
}
7575

76-
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
77-
if r.Header.Get("Authorization") != "Bearer test-api-key" {
78-
t.Error("expected Authorization header with Bearer token")
79-
}
76+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
77+
if r.Header.Get("Authorization") != "Bearer test-api-key" {
78+
t.Error("expected Authorization header with Bearer token")
79+
}
8080

81-
query := r.URL.Query()
82-
if query.Get("country") != "US" {
83-
t.Errorf("expected country query param US, got %s", query.Get("country"))
84-
}
85-
if query.Get("protocol") != "socks5" {
86-
t.Errorf("expected protocol query param socks5, got %s", query.Get("protocol"))
87-
}
88-
if query.Get("page") != "1" {
89-
t.Errorf("expected page query param 1, got %s", query.Get("page"))
90-
}
81+
query := r.URL.Query()
82+
if query.Get("country") != "US" {
83+
t.Errorf("expected country query param US, got %s", query.Get("country"))
84+
}
85+
if query.Get("protocol") != "socks5" {
86+
t.Errorf("expected protocol query param socks5, got %s", query.Get("protocol"))
87+
}
88+
if query.Get("page") != "1" {
89+
t.Errorf("expected page query param 1, got %s", query.Get("page"))
90+
}
9191

92-
w.Header().Set("Content-Type", "application/json")
93-
json.NewEncoder(w).Encode(mockResponse)
94-
}))
95-
defer server.Close()
92+
w.Header().Set("Content-Type", "application/json")
93+
json.NewEncoder(w).Encode(mockResponse)
94+
}))
95+
defer server.Close()
9696

97-
client := New("test-api-key")
98-
client.proxiesURL = server.URL
97+
client := New("test-api-key")
98+
client.proxiesURL = server.URL
9999

100-
response, err := client.Query(
101-
WithCountry("US"),
102-
WithProtocol("socks5"),
103-
WithPage(1),
104-
)
100+
response, err := client.Query(
101+
WithCountry("US"),
102+
WithProtocol("socks5"),
103+
WithPage(1),
104+
)
105105

106-
if err != nil {
107-
t.Fatalf("expected no error, got %v", err)
108-
}
109-
if response == nil {
110-
t.Fatal("expected response, got nil")
111-
}
112-
if len(response) != 1 {
113-
t.Errorf("expected 1 proxy, got %d", len(response))
114-
}
115-
if response[0].ID != "1" {
116-
t.Errorf("expected proxy ID 1, got %s", response[0].ID)
117-
}
106+
if err != nil {
107+
t.Fatalf("expected no error, got %v", err)
108+
}
109+
if response == nil {
110+
t.Fatal("expected response, got nil")
111+
}
112+
if len(response) != 1 {
113+
t.Errorf("expected 1 proxy, got %d", len(response))
114+
}
115+
if response[0].ID != "1" {
116+
t.Errorf("expected proxy ID 1, got %s", response[0].ID)
117+
}
118118
}
119119

120120
func TestQueryNoOptions(t *testing.T) {
121-
mockResponse := []Proxy{}
121+
mockResponse := []Proxy{}
122122

123-
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
124-
w.Header().Set("Content-Type", "application/json")
125-
json.NewEncoder(w).Encode(mockResponse)
126-
}))
127-
defer server.Close()
123+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
124+
w.Header().Set("Content-Type", "application/json")
125+
json.NewEncoder(w).Encode(mockResponse)
126+
}))
127+
defer server.Close()
128128

129-
client := New("test-api-key")
130-
client.proxiesURL = server.URL
129+
client := New("test-api-key")
130+
client.proxiesURL = server.URL
131131

132-
response, err := client.Query()
132+
response, err := client.Query()
133133

134-
if err != nil {
135-
t.Fatalf("expected no error, got %v", err)
136-
}
137-
if response == nil {
138-
t.Fatal("expected response, got nil")
139-
}
140-
if len(response) != 0 {
141-
t.Errorf("expected 0 proxies, got %d", len(response))
142-
}
134+
if err != nil {
135+
t.Fatalf("expected no error, got %v", err)
136+
}
137+
if response == nil {
138+
t.Fatal("expected response, got nil")
139+
}
140+
if len(response) != 0 {
141+
t.Errorf("expected 0 proxies, got %d", len(response))
142+
}
143143
}
144144

145145
func TestQueryError(t *testing.T) {
146-
errorResponse := map[string]string{
147-
"error": "INVALID_PARAMETER",
148-
}
146+
errorResponse := map[string]string{
147+
"error": "INVALID_PARAMETER",
148+
}
149149

150-
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
151-
w.WriteHeader(http.StatusBadRequest)
152-
w.Header().Set("Content-Type", "application/json")
153-
json.NewEncoder(w).Encode(errorResponse)
154-
}))
155-
defer server.Close()
150+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
151+
w.WriteHeader(http.StatusBadRequest)
152+
w.Header().Set("Content-Type", "application/json")
153+
json.NewEncoder(w).Encode(errorResponse)
154+
}))
155+
defer server.Close()
156156

157-
client := New("test-api-key")
158-
client.proxiesURL = server.URL
157+
client := New("test-api-key")
158+
client.proxiesURL = server.URL
159159

160-
response, err := client.Query()
160+
response, err := client.Query()
161161

162-
if err == nil {
163-
t.Fatal("expected error, got nil")
164-
}
165-
if response != nil {
166-
t.Errorf("expected nil response, got %v", response)
167-
}
162+
if err == nil {
163+
t.Fatal("expected error, got nil")
164+
}
165+
if response != nil {
166+
t.Errorf("expected nil response, got %v", response)
167+
}
168168

169-
apiErr, ok := err.(*Error)
170-
if !ok {
171-
t.Errorf("expected Error, got %T", err)
172-
}
173-
if apiErr.Message != "INVALID_PARAMETER" {
174-
t.Errorf("expected error message 'INVALID_PARAMETER', got %q", apiErr.Message)
175-
}
169+
apiErr, ok := err.(*Error)
170+
if !ok {
171+
t.Errorf("expected Error, got %T", err)
172+
}
173+
if apiErr.Message != "INVALID_PARAMETER" {
174+
t.Errorf("expected error message 'INVALID_PARAMETER', got %q", apiErr.Message)
175+
}
176176
}
177177

178178
func TestQueryHTTPError(t *testing.T) {
179-
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
180-
w.WriteHeader(http.StatusInternalServerError)
181-
w.Write([]byte("Internal Server Error"))
182-
}))
183-
defer server.Close()
179+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
180+
w.WriteHeader(http.StatusInternalServerError)
181+
w.Write([]byte("Internal Server Error"))
182+
}))
183+
defer server.Close()
184184

185-
client := New("test-api-key")
186-
client.proxiesURL = server.URL
185+
client := New("test-api-key")
186+
client.proxiesURL = server.URL
187187

188-
response, err := client.Query()
188+
response, err := client.Query()
189189

190-
if err == nil {
191-
t.Fatal("expected error, got nil")
192-
}
193-
if response != nil {
194-
t.Errorf("expected nil response, got %v", response)
195-
}
190+
if err == nil {
191+
t.Fatal("expected error, got nil")
192+
}
193+
if response != nil {
194+
t.Errorf("expected nil response, got %v", response)
195+
}
196196

197-
apiErr, ok := err.(*Error)
198-
if !ok {
199-
t.Errorf("expected Error, got %T", err)
200-
}
201-
if apiErr.Message == "" {
202-
t.Error("expected error message, got empty string")
203-
}
197+
apiErr, ok := err.(*Error)
198+
if !ok {
199+
t.Errorf("expected Error, got %T", err)
200+
}
201+
if apiErr.Message == "" {
202+
t.Error("expected error message, got empty string")
203+
}
204204
}
205205

206206
func TestWithCountry(t *testing.T) {
207-
params := &QueryParams{}
208-
opt := WithCountry("US")
209-
opt(params)
210-
if params.Country == nil || *params.Country != "US" {
211-
t.Errorf("expected country to be 'US', got %v", params.Country)
212-
}
207+
params := &QueryParams{}
208+
opt := WithCountry("US")
209+
opt(params)
210+
if params.Country == nil || *params.Country != "US" {
211+
t.Errorf("expected country to be 'US', got %v", params.Country)
212+
}
213213
}
214214

215215
func TestWithProtocol(t *testing.T) {
216-
params := &QueryParams{}
217-
opt := WithProtocol("https")
218-
opt(params)
219-
if params.Protocol == nil || *params.Protocol != "https" {
220-
t.Errorf("expected protocol to be 'https', got %v", params.Protocol)
221-
}
216+
params := &QueryParams{}
217+
opt := WithProtocol("https")
218+
opt(params)
219+
if params.Protocol == nil || *params.Protocol != "https" {
220+
t.Errorf("expected protocol to be 'https', got %v", params.Protocol)
221+
}
222222
}
223223

224224
func TestWithPage(t *testing.T) {
@@ -318,4 +318,4 @@ func TestQueryPage(t *testing.T) {
318318
if len(response) != 0 {
319319
t.Errorf("expected 0 proxies, got %d", len(response))
320320
}
321-
}
321+
}

0 commit comments

Comments
 (0)