54 lines
		
	
	
		
			966 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			966 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package wrapper
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/micro/go-micro/v2/metadata"
 | 
						|
)
 | 
						|
 | 
						|
func TestWrapper(t *testing.T) {
 | 
						|
	testData := []struct {
 | 
						|
		existing  metadata.Metadata
 | 
						|
		headers   metadata.Metadata
 | 
						|
		overwrite bool
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			existing: metadata.Metadata{},
 | 
						|
			headers: metadata.Metadata{
 | 
						|
				"Foo": "bar",
 | 
						|
			},
 | 
						|
			overwrite: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			existing: metadata.Metadata{
 | 
						|
				"Foo": "bar",
 | 
						|
			},
 | 
						|
			headers: metadata.Metadata{
 | 
						|
				"Foo": "baz",
 | 
						|
			},
 | 
						|
			overwrite: false,
 | 
						|
		},
 | 
						|
	}
 | 
						|
 | 
						|
	for _, d := range testData {
 | 
						|
		c := &fromServiceWrapper{
 | 
						|
			headers: d.headers,
 | 
						|
		}
 | 
						|
 | 
						|
		ctx := metadata.NewContext(context.Background(), d.existing)
 | 
						|
		ctx = c.setHeaders(ctx)
 | 
						|
		md, _ := metadata.FromContext(ctx)
 | 
						|
 | 
						|
		for k, v := range d.headers {
 | 
						|
			if d.overwrite && md[k] != v {
 | 
						|
				t.Fatalf("Expected %s=%s got %s=%s", k, v, k, md[k])
 | 
						|
			}
 | 
						|
			if !d.overwrite && md[k] != d.existing[k] {
 | 
						|
				t.Fatalf("Expected %s=%s got %s=%s", k, d.existing[k], k, md[k])
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
}
 |