micro/util/ctx/ctx_test.go

42 lines
764 B
Go
Raw Normal View History

2019-05-30 23:52:10 +01:00
package ctx
import (
"net/http"
"testing"
"go.unistack.org/micro/v3/metadata"
2019-05-30 23:52:10 +01:00
)
func TestRequestToContext(t *testing.T) {
testData := []struct {
request *http.Request
expect metadata.Metadata
}{
{
&http.Request{
Header: http.Header{
2019-12-31 13:53:48 +00:00
"Foo1": []string{"bar"},
"Foo2": []string{"bar", "baz"},
2019-05-30 23:52:10 +01:00
},
},
metadata.Metadata{
2019-12-31 13:53:48 +00:00
"Foo1": "bar",
"Foo2": "bar,baz",
2019-05-30 23:52:10 +01:00
},
},
}
for _, d := range testData {
ctx := FromRequest(d.request)
md, ok := metadata.FromIncomingContext(ctx)
2019-05-30 23:52:10 +01:00
if !ok {
t.Fatalf("Expected metadata for request %+v", d.request)
}
for k, v := range d.expect {
if val := md[k]; val != v {
t.Fatalf("Expected %s for key %s for expected md %+v, got md %+v", v, k, d.expect, md)
}
}
}
}