|
1 | 1 | package gapi |
2 | 2 |
|
3 | 3 | import ( |
| 4 | +"bytes" |
| 5 | +"encoding/json" |
| 6 | +"net/url" |
4 | 7 | "testing" |
5 | 8 | ) |
6 | 9 |
|
@@ -41,3 +44,89 @@ func TestNew_invalidURL(t *testing.T) { |
41 | 44 | t.Errorf("expected error: %v; got: %s", expected, err.Error()) |
42 | 45 | } |
43 | 46 | } |
| 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