From 4f23803cc9d26cdbd2828822454d00d9611bb3e9 Mon Sep 17 00:00:00 2001 From: bozd4g Date: Mon, 5 Dec 2022 21:35:17 +0100 Subject: [PATCH 1/2] Update unmarshal and tests --- response.go | 9 +-------- response_test.go | 31 +++---------------------------- 2 files changed, 4 insertions(+), 36 deletions(-) diff --git a/response.go b/response.go index 6299209..d831748 100644 --- a/response.go +++ b/response.go @@ -2,7 +2,6 @@ package gohttpclient import ( "encoding/json" - "io/ioutil" "net/http" ) @@ -18,13 +17,7 @@ func (r *Response) Body() []byte { } func (r *Response) Unmarshal(v any) error { - defer r.res.Body.Close() - body, err := ioutil.ReadAll(r.res.Body) - if err != nil { - return err - } - - return json.Unmarshal(body, &v) + return json.Unmarshal(r.body, &v) } func (r *Response) Status() int { diff --git a/response_test.go b/response_test.go index d4e89ea..16dc53e 100644 --- a/response_test.go +++ b/response_test.go @@ -3,29 +3,13 @@ package gohttpclient import ( "bytes" "context" - "fmt" "io/ioutil" "net/http" "testing" - "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" ) -type mockReadCloser struct { - mock.Mock -} - -func (m *mockReadCloser) Read(p []byte) (n int, err error) { - args := m.Called(p) - return args.Int(0), args.Error(1) -} - -func (m *mockReadCloser) Close() error { - args := m.Called() - return args.Error(0) -} - type TestResponseSuite struct { suite.Suite ctx context.Context @@ -73,14 +57,8 @@ func (s *TestResponseSuite) Test_Unmarshal_ShouldRunSuccesfully() { func (s *TestResponseSuite) Test_Unmarshal_WhenBodyIsWrong_ShouldReturnError() { // Arrange - mockReadCloser := mockReadCloser{} - mockReadCloser.On("Read", mock.AnythingOfType("[]uint8")).Return(0, fmt.Errorf("error reading")) - mockReadCloser.On("Close").Return(fmt.Errorf("error closing")) - resp := Response{ - res: &http.Response{ - Body: &mockReadCloser, - }, + body: nil, } // Act @@ -94,13 +72,10 @@ func (s *TestResponseSuite) Test_Unmarshal_WhenBodyIsWrong_ShouldReturnError() { func (s *TestResponseSuite) Test_Unmarshal_WhenUnMarshalReturnsError_ShouldReturnError() { // Arrange body := []byte(`{"name":"test"`) + res := &http.Response{} // Act - resp := Response{ - res: &http.Response{ - Body: ioutil.NopCloser(bytes.NewBuffer(body)), - }, - } + resp := Response{res, body} // Assert var response map[string]interface{} From 1ee879029cdcf877bc20cba1605b84c480416ad9 Mon Sep 17 00:00:00 2001 From: bozd4g Date: Mon, 5 Dec 2022 21:38:20 +0100 Subject: [PATCH 2/2] Update response tests --- response_test.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/response_test.go b/response_test.go index 16dc53e..9d9adf0 100644 --- a/response_test.go +++ b/response_test.go @@ -40,13 +40,10 @@ func (s *TestResponseSuite) Test_Body_ShouldRunSuccesfully() { func (s *TestResponseSuite) Test_Unmarshal_ShouldRunSuccesfully() { // Arrange body := []byte(`{"name":"test"}`) + res := &http.Response{} // Act - resp := Response{ - res: &http.Response{ - Body: ioutil.NopCloser(bytes.NewBuffer(body)), - }, - } + resp := Response{res, body} // Assert var response map[string]interface{}