12345678910111213141516171819202122232425262728293031323334353637383940 |
- package encoding
- import (
- "net/http"
- "net/http/httptest"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestParseHeaders(t *testing.T) {
- var val struct {
- Foo string `header:"foo"`
- Baz int `header:"baz"`
- Qux bool `header:"qux,default=true"`
- }
- r := httptest.NewRequest(http.MethodGet, "/any", nil)
- r.Header.Set("foo", "bar")
- r.Header.Set("baz", "1")
- assert.Nil(t, ParseHeaders(r.Header, &val))
- assert.Equal(t, "bar", val.Foo)
- assert.Equal(t, 1, val.Baz)
- assert.True(t, val.Qux)
- }
- func TestParseHeadersMulti(t *testing.T) {
- var val struct {
- Foo []string `header:"foo"`
- Baz int `header:"baz"`
- Qux bool `header:"qux,default=true"`
- }
- r := httptest.NewRequest(http.MethodGet, "/any", nil)
- r.Header.Set("foo", "bar")
- r.Header.Add("foo", "bar1")
- r.Header.Set("baz", "1")
- assert.Nil(t, ParseHeaders(r.Header, &val))
- assert.Equal(t, []string{"bar", "bar1"}, val.Foo)
- assert.Equal(t, 1, val.Baz)
- assert.True(t, val.Qux)
- }
|