Skip to content

Commit fe06df2

Browse files
committed
add various request tests
1 parent b06cab1 commit fe06df2

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed

client_test.go

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package gapi
22

33
import (
4+
"bytes"
5+
"encoding/json"
6+
"net/url"
47
"testing"
58
)
69

@@ -41,3 +44,89 @@ func TestNew_invalidURL(t *testing.T) {
4144
t.Errorf("expected error: %v; got: %s", expected, err.Error())
4245
}
4346
}
47+
48+
func TestRequest_200(t *testing.T) {
49+
server, client := gapiTestTools(200, `{"foo":"bar"}`)
50+
defer server.Close()
51+
52+
err := client.request("GET", "/foo", url.Values{}, nil, nil)
53+
if err != nil {
54+
t.Errorf(err.Error())
55+
}
56+
}
57+
58+
func TestRequest_201(t *testing.T) {
59+
server, client := gapiTestTools(201, `{"foo":"bar"}`)
60+
defer server.Close()
61+
62+
err := client.request("GET", "/foo", url.Values{}, nil, nil)
63+
if err != nil {
64+
t.Errorf(err.Error())
65+
}
66+
}
67+
68+
func TestRequest_400(t *testing.T) {
69+
server, client := gapiTestTools(400, `{"foo":"bar"}`)
70+
defer server.Close()
71+
72+
expected := `status: 400, body: {"foo":"bar"}`
73+
err := client.request("GET", "/foo", url.Values{}, nil, nil)
74+
if err.Error() != expected {
75+
t.Errorf("expected error: %v; got: %s", expected, err.Error())
76+
}
77+
}
78+
79+
func TestRequest_500(t *testing.T) {
80+
server, client := gapiTestTools(500, `{"foo":"bar"}`)
81+
defer server.Close()
82+
83+
expected := `status: 500, body: {"foo":"bar"}`
84+
err := client.request("GET", "/foo", url.Values{}, nil, nil)
85+
if err.Error() != expected {
86+
t.Errorf("expected error: %v; got: %s", expected, err.Error())
87+
}
88+
}
89+
90+
func TestRequest_200Unmarshal(t *testing.T) {
91+
server, client := gapiTestTools(200, `{"foo":"bar"}`)
92+
defer server.Close()
93+
94+
result := struct {
95+
Foo string `json:"foo"`
96+
}{}
97+
err := client.request("GET", "/foo", url.Values{}, nil, &result)
98+
if err != nil {
99+
t.Errorf(err.Error())
100+
}
101+
102+
if result.Foo != "bar" {
103+
t.Errorf("expected: bar; got: %s", result.Foo)
104+
}
105+
}
106+
107+
func TestRequest_200UnmarshalPut(t *testing.T) {
108+
server, client := gapiTestTools(200, `{"name":"mike"}`)
109+
defer server.Close()
110+
111+
u := User{
112+
Name: "mike",
113+
}
114+
data, err := json.Marshal(u)
115+
if err != nil {
116+
t.Errorf(err.Error())
117+
}
118+
119+
result := struct {
120+
Name string `json:"name"`
121+
}{}
122+
q := url.Values{}
123+
q.Add("a", "b")
124+
err = client.request("PUT", "/foo", q, bytes.NewBuffer(data), &result)
125+
if err != nil {
126+
t.Errorf(err.Error())
127+
}
128+
129+
if result.Name != "mike" {
130+
t.Errorf("expected: name; got: %s", result.Name)
131+
}
132+
}

0 commit comments

Comments
 (0)