-
Notifications
You must be signed in to change notification settings - Fork 3
/
http_client_call_headers_test.go
59 lines (48 loc) · 1.62 KB
/
http_client_call_headers_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package client
import (
"net/http"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)
type HTTPClientCallHeadersSuite struct {
suite.Suite
call *HTTPClientCall
req *http.Request
}
func (suite *HTTPClientCallHeadersSuite) SetupTest() {
client := &http.Client{}
suite.call = NewHTTPClientCall("http://example.com", client)
suite.req, _ = http.NewRequest("GET", "http://example.com", nil)
}
func (suite *HTTPClientCallHeadersSuite) TestSetHeaders() {
suite.Run("sets single header correctly", func() {
headers := http.Header{
HeaderContentType: []string{"application/json"},
}
suite.call.Headers(headers)
suite.call.setHeaders(suite.req)
assert.Equal(suite.T(), "application/json", suite.req.Header.Get(HeaderContentType))
})
suite.Run("sets multiple headers correctly", func() {
headers := http.Header{
HeaderContentType: []string{"application/json"},
HeaderAccept: []string{"application/json"},
}
suite.call.Headers(headers)
suite.call.setHeaders(suite.req)
assert.Equal(suite.T(), "application/json", suite.req.Header.Get(HeaderContentType))
assert.Equal(suite.T(), "application/json", suite.req.Header.Get(HeaderAccept))
})
suite.Run("sets multiple values for a single header correctly", func() {
headers := http.Header{
HeaderAcceptEncoding: []string{"gzip", "deflate"},
}
suite.call.Headers(headers)
suite.call.setHeaders(suite.req)
assert.ElementsMatch(suite.T(), []string{"gzip", "deflate"}, suite.req.Header[HeaderAcceptEncoding])
})
}
func TestHTTPClientCallHeadersSuite(t *testing.T) {
suite.Run(t, new(HTTPClientCallHeadersSuite))
}