From 8b36d5ba35175cfcd3ec74b6984ad43f5e37cb12 Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:08:28 +0200 Subject: [PATCH 1/9] feat(test): Add test for NewReponseModifier --- response_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/response_test.go b/response_test.go index 0b83211..1e6156f 100644 --- a/response_test.go +++ b/response_test.go @@ -1 +1,17 @@ package intercept + +import ( + "github.com/nbio/st" + "net/http" + "testing" +) + +func TestNewResponseModifier(t *testing.T) { + header := http.Header{} + req := &http.Request{} + resp := &http.Response{Header: header} + modifier := NewResponseModifier(req, resp) + st.Expect(t, modifier.Request, req) + st.Expect(t, modifier.Response, resp) + st.Expect(t, modifier.Header, header) +} From 231f1adcbc3f0277ad94ad5389068a64a3c0a997 Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:11:47 +0200 Subject: [PATCH 2/9] feat(test): Add test for Status --- response_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/response_test.go b/response_test.go index 1e6156f..c22cf1f 100644 --- a/response_test.go +++ b/response_test.go @@ -15,3 +15,12 @@ func TestNewResponseModifier(t *testing.T) { st.Expect(t, modifier.Response, resp) st.Expect(t, modifier.Header, header) } + +func TestStatus(t *testing.T) { + req := &http.Request{} + resp := &http.Response{} + modifier := NewResponseModifier(req, resp) + modifier.Status(404) + st.Expect(t, resp.StatusCode, 404) + st.Expect(t, resp.Status, "404 Not Found") +} From 743f33e3e1494b3c39bbe2802ef0f13a521a1fec Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:17:32 +0200 Subject: [PATCH 3/9] feat(test): Add test for ResponseModifier.ReadString() --- response_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/response_test.go b/response_test.go index c22cf1f..0500e5b 100644 --- a/response_test.go +++ b/response_test.go @@ -2,7 +2,9 @@ package intercept import ( "github.com/nbio/st" + "io/ioutil" "net/http" + "strings" "testing" ) @@ -24,3 +26,15 @@ func TestStatus(t *testing.T) { st.Expect(t, resp.StatusCode, 404) st.Expect(t, resp.Status, "404 Not Found") } + +func TestResponseModifierReadString(t *testing.T) { + req := &http.Request{} + bodyStr := `{"name":"Rick"}` + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + str, err := modifier.ReadString() + st.Expect(t, err, nil) + st.Expect(t, str, bodyStr) +} From b47274ecd41403b79ecd6fccd364788e18ab6b43 Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:19:23 +0200 Subject: [PATCH 4/9] feat(test): Add test for ResponseModifier.ReadString() error --- response_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/response_test.go b/response_test.go index 0500e5b..fe7c655 100644 --- a/response_test.go +++ b/response_test.go @@ -38,3 +38,13 @@ func TestResponseModifierReadString(t *testing.T) { st.Expect(t, err, nil) st.Expect(t, str, bodyStr) } + +func TestResponseModifierReadStringError(t *testing.T) { + req := &http.Request{} + body := ioutil.NopCloser(&errorReader{}) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + str, err := modifier.ReadString() + st.Expect(t, err, errRead) + st.Expect(t, str, "") +} From 558dc095b5f468f0e5759169a703575c675783ee Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:20:58 +0200 Subject: [PATCH 5/9] feat(test): Add tests for ResponseModifier.ReadBytes() --- response_test.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/response_test.go b/response_test.go index fe7c655..18ebe71 100644 --- a/response_test.go +++ b/response_test.go @@ -48,3 +48,25 @@ func TestResponseModifierReadStringError(t *testing.T) { st.Expect(t, err, errRead) st.Expect(t, str, "") } + +func TestResponseModifierReadBytes(t *testing.T) { + req := &http.Request{} + bodyStr := `{"name":"Rick"}` + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + bytes, err := modifier.ReadBytes() + st.Expect(t, err, nil) + st.Expect(t, string(bytes), bodyStr) +} + +func TestResponseModifierReadBytesError(t *testing.T) { + req := &http.Request{} + body := ioutil.NopCloser(&errorReader{}) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + bytes, err := modifier.ReadBytes() + st.Expect(t, err, errRead) + st.Expect(t, string(bytes), "") +} From 2bfa803e1ddf5d8c4ef60803013d4051d02fd1d3 Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:31:13 +0200 Subject: [PATCH 6/9] feat(test): Add tests for ResponseModifier.DecodeJSON() --- response_test.go | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/response_test.go b/response_test.go index 18ebe71..405cea1 100644 --- a/response_test.go +++ b/response_test.go @@ -1,6 +1,7 @@ package intercept import ( + "encoding/json" "github.com/nbio/st" "io/ioutil" "net/http" @@ -70,3 +71,55 @@ func TestResponseModifierReadBytesError(t *testing.T) { st.Expect(t, err, errRead) st.Expect(t, string(bytes), "") } + +func TestResponseModifierDecodeJSON(t *testing.T) { + req := &http.Request{} + bodyStr := `{"name":"Rick"}` + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeJSON(&u) + st.Expect(t, err, nil) + st.Expect(t, u.Name, "Rick") +} + +func TestResponseModifierDecodeJSONErrorFromReadBytes(t *testing.T) { + req := &http.Request{} + body := ioutil.NopCloser(&errorReader{}) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeJSON(&u) + st.Expect(t, err, errRead) + st.Expect(t, u.Name, "") +} + +func TestResponseModifierDecodeJSONErrorFromEOF(t *testing.T) { + req := &http.Request{} + bodyStr := "" + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeJSON(&u) + st.Expect(t, err, nil) + st.Expect(t, u.Name, "") +} + +func TestResponseModifierDecodeJSONErrorFromDecode(t *testing.T) { + req := &http.Request{} + bodyStr := "/" + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeJSON(&u) + _, ok := (err).(*json.SyntaxError) + st.Expect(t, ok, true) + st.Expect(t, err.Error(), "invalid character '/' looking for beginning of value") + st.Expect(t, u.Name, "") +} From 2190ff864b10494e84ff069ccd29f3c3aad9da81 Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:37:11 +0200 Subject: [PATCH 7/9] feat(test): Add tests for ResponseModifier.DecodeXML() --- response_test.go | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/response_test.go b/response_test.go index 405cea1..18f2566 100644 --- a/response_test.go +++ b/response_test.go @@ -2,6 +2,7 @@ package intercept import ( "encoding/json" + "encoding/xml" "github.com/nbio/st" "io/ioutil" "net/http" @@ -123,3 +124,55 @@ func TestResponseModifierDecodeJSONErrorFromDecode(t *testing.T) { st.Expect(t, err.Error(), "invalid character '/' looking for beginning of value") st.Expect(t, u.Name, "") } + +func TestResponseModifierDecodeXML(t *testing.T) { + req := &http.Request{} + bodyStr := `Rick` + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeXML(&u, nil) + st.Expect(t, err, nil) + st.Expect(t, u.Name, "Rick") +} + +func TestResponseModifierDecodeXMLErrorFromReadBytes(t *testing.T) { + req := &http.Request{} + body := ioutil.NopCloser(&errorReader{}) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeXML(&u, nil) + st.Expect(t, err, errRead) + st.Expect(t, u.Name, "") +} + +func TestResponseModifierDecodeXMLErrorFromDecode(t *testing.T) { + req := &http.Request{} + bodyStr := `]]>` + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeXML(&u, nil) + _, ok := (err).(*xml.SyntaxError) + st.Expect(t, ok, true) + st.Expect(t, err.Error(), "XML syntax error on line 1: unescaped ]]> not in CDATA section") + st.Expect(t, u.Name, "") +} + +func TestResponseModifierDecodeXMLEOF(t *testing.T) { + req := &http.Request{} + bodyStr := "" + strReader := strings.NewReader(bodyStr) + body := ioutil.NopCloser(strReader) + resp := &http.Response{Body: body} + modifier := NewResponseModifier(req, resp) + u := user{} + err := modifier.DecodeXML(&u, nil) + st.Expect(t, err, nil) + st.Expect(t, u.Name, "") +} From b923fd3f420f76a39a47d2ee2ab90c2cc37ee73d Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:53:49 +0200 Subject: [PATCH 8/9] feat(test): Add test for ResponseModifier.String() --- response_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/response_test.go b/response_test.go index 18f2566..a951b56 100644 --- a/response_test.go +++ b/response_test.go @@ -176,3 +176,14 @@ func TestResponseModifierDecodeXMLEOF(t *testing.T) { st.Expect(t, err, nil) st.Expect(t, u.Name, "") } + +func TestResponseModifierString(t *testing.T) { + req := &http.Request{} + resp := &http.Response{} + modifier := NewResponseModifier(req, resp) + bodyStr := "Rick" + modifier.String(bodyStr) + body, err := ioutil.ReadAll(resp.Body) + st.Expect(t, err, nil) + st.Expect(t, string(body), "Rick") +} From d373d9aee7fdad723d2e65f468bdd304dc250c2f Mon Sep 17 00:00:00 2001 From: Yohan Robert Date: Mon, 4 Apr 2016 22:55:01 +0200 Subject: [PATCH 9/9] feat(test): Add test for ResponseModifier.Bytes() --- response_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/response_test.go b/response_test.go index a951b56..bae6c85 100644 --- a/response_test.go +++ b/response_test.go @@ -187,3 +187,14 @@ func TestResponseModifierString(t *testing.T) { st.Expect(t, err, nil) st.Expect(t, string(body), "Rick") } + +func TestResponseModifierByte(t *testing.T) { + req := &http.Request{} + resp := &http.Response{} + modifier := NewResponseModifier(req, resp) + bodyBytes := []byte("Rick") + modifier.Bytes(bodyBytes) + body, err := ioutil.ReadAll(resp.Body) + st.Expect(t, err, nil) + st.Expect(t, string(body), "Rick") +}