42 lines
		
	
	
		
			757 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			757 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package ctx
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/micro/go-micro/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)
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |