...
1 package response
2
3 import (
4 "bytes"
5 "errors"
6 "io"
7 "io/ioutil"
8 "net/http"
9 "strings"
10 "testing"
11
12 "github.com/stretchr/testify/assert"
13 )
14
15 func Test_ParseFromHTTPResponse(t *testing.T) {
16 r := &CommonResponse{}
17 res := &http.Response{
18 Body: ioutil.NopCloser(bytes.NewReader([]byte(""))),
19 StatusCode: 200,
20 Header: make(map[string][]string),
21 }
22 res.Header.Add("Server", "GitHub.com")
23 r.ParseFromHTTPResponse(res)
24 assert.Equal(t, []byte{}, r.GetHTTPContentBytes())
25 assert.Equal(t, "", r.GetHTTPContentString())
26 assert.Equal(t, "GitHub.com", r.GetHTTPHeaders()["Server"][0])
27 assert.Equal(t, 200, r.GetHTTPStatus())
28 }
29
30 func TestHookReadAll(t *testing.T) {
31 fn := func(body io.Reader) (byt []byte, err error) {
32 return nil, errors.New("hookReadAll")
33 }
34 result := hookReadAll(fn)
35 byt, err := result(nil)
36 assert.Nil(t, byt)
37 assert.Equal(t, "hookReadAll", err.Error())
38
39 originHookReadAll := hookReadAll
40 hookReadAll = func(old func(body io.Reader) (byt []byte, err error)) func(body io.Reader) (byt []byte, err error) {
41 return fn
42 }
43 defer func() {
44 hookReadAll = originHookReadAll
45 }()
46 commonResponse := &CommonResponse{}
47 httpResponse := &http.Response{
48 Body: ioutil.NopCloser(strings.NewReader("creadential")),
49 }
50 err = commonResponse.ParseFromHTTPResponse(httpResponse)
51 assert.Equal(t, "hookReadAll", err.Error())
52 }
53
View as plain text