42 lines
760 B
Go
42 lines
760 B
Go
package ctx
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/micro/go-micro/v2/metadata"
|
|
)
|
|
|
|
func TestRequestToContext(t *testing.T) {
|
|
testData := []struct {
|
|
request *http.Request
|
|
expect metadata.Metadata
|
|
}{
|
|
{
|
|
&http.Request{
|
|
Header: http.Header{
|
|
"Foo1": []string{"bar"},
|
|
"Foo2": []string{"bar", "baz"},
|
|
},
|
|
},
|
|
metadata.Metadata{
|
|
"Foo1": "bar",
|
|
"Foo2": "bar,baz",
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, d := range testData {
|
|
ctx := FromRequest(d.request)
|
|
md, ok := metadata.FromContext(ctx)
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
}
|