...

Source file src/github.com/aliyun/credentials-go/credentials/response/common_response_test.go

Documentation: github.com/aliyun/credentials-go/credentials/response

     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