MCPcopy
hub / github.com/go-kit/kit / TestEncodeJSONRequest

Function TestEncodeJSONRequest

transport/http/client_test.go:203–263  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

201}
202
203func TestEncodeJSONRequest(t *testing.T) {
204 var header http.Header
205 var body string
206
207 server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
208 b, err := ioutil.ReadAll(r.Body)
209 if err != nil && err != io.EOF {
210 t.Fatal(err)
211 }
212 header = r.Header
213 body = string(b)
214 }))
215
216 defer server.Close()
217
218 serverURL, err := url.Parse(server.URL)
219
220 if err != nil {
221 t.Fatal(err)
222 }
223
224 client := httptransport.NewClient(
225 "POST",
226 serverURL,
227 httptransport.EncodeJSONRequest,
228 func(context.Context, *http.Response) (interface{}, error) { return nil, nil },
229 ).Endpoint()
230
231 for _, test := range []struct {
232 value interface{}
233 body string
234 }{
235 {nil, "null\n"},
236 {12, "12\n"},
237 {1.2, "1.2\n"},
238 {true, "true\n"},
239 {"test", "\"test\"\n"},
240 {enhancedRequest{Foo: "foo"}, "{\"foo\":\"foo\"}\n"},
241 } {
242 if _, err := client(context.Background(), test.value); err != nil {
243 t.Error(err)
244 continue
245 }
246
247 if body != test.body {
248 t.Errorf("%v: actual %#v, expected %#v", test.value, body, test.body)
249 }
250 }
251
252 if _, err := client(context.Background(), enhancedRequest{Foo: "foo"}); err != nil {
253 t.Fatal(err)
254 }
255
256 if _, ok := header["X-Edward"]; !ok {
257 t.Fatalf("X-Edward value: actual %v, expected %v", nil, []string{"Snowden"})
258 }
259
260 if v := header.Get("X-Edward"); v != "Snowden" {

Callers

nothing calls this directly

Calls 5

EndpointMethod · 0.65
clientStruct · 0.50
CloseMethod · 0.45
ErrorMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…