Skip to content

Commit

Permalink
Add support AddHeader for response
Browse files Browse the repository at this point in the history
  • Loading branch information
maxcnunes committed Jul 18, 2017
1 parent 58e9b0f commit 5103513
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
56 changes: 56 additions & 0 deletions examples/response_add_header.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// nolint dupl
package examples

import (
"io/ioutil"
"net/http"
"testing"

"github.com/maxcnunes/httpfake"
)

// TestResponseAddHeader tests a fake server handling a GET request
// and responding with a speficied header
func TestResponseAddHeader(t *testing.T) {
fakeService := httpfake.New()
defer fakeService.Server.Close()

// register a handler for our fake service
fakeService.NewHandler().
Get("/users").
Reply(200).
AddHeader("X-My-Header", "My Header value").
BodyString("[]")

req, err := http.NewRequest("GET", fakeService.ResolveURL("/users"), nil)
if err != nil {
t.Fatal(err)
}

res, err := http.DefaultClient.Do(req)
if err != nil {
t.Fatal(err)
}
defer res.Body.Close() // nolint errcheck

// Check the status code is what we expect
if status := res.StatusCode; status != 200 {
t.Errorf("request returned wrong status code: got %v want %v",
status, 200)
}

// Check the response body is what we expect
expected := "[]"
body, _ := ioutil.ReadAll(res.Body)
if bodyString := string(body); bodyString != expected {
t.Errorf("request returned unexpected body: got %v want %v",
bodyString, expected)
}

// Check the response header is what we expect
expected = "My Header value"
if header := res.Header.Get("X-My-Header"); header != expected {
t.Errorf("request returned unexpected value for header X-My-Header: got %v want %v",
header, expected)
}
}
6 changes: 6 additions & 0 deletions response.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ func (r *Response) SetHeader(key, value string) *Response {
return r
}

// AddHeader ...
func (r *Response) AddHeader(key, value string) *Response {
r.Header.Add(key, value)
return r
}

// BodyString ...
func (r *Response) BodyString(body string) *Response {
r.BodyBuffer = []byte(body)
Expand Down

0 comments on commit 5103513

Please sign in to comment.