gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/util/wrapper/wrapper_test.go (about) 1 package wrapper 2 3 import ( 4 "context" 5 "testing" 6 7 "gitee.com/liuxuezhan/go-micro-v1.18.0/metadata" 8 ) 9 10 func TestWrapper(t *testing.T) { 11 testData := []struct { 12 existing metadata.Metadata 13 headers metadata.Metadata 14 overwrite bool 15 }{ 16 { 17 existing: metadata.Metadata{}, 18 headers: metadata.Metadata{ 19 "foo": "bar", 20 }, 21 overwrite: true, 22 }, 23 { 24 existing: metadata.Metadata{ 25 "foo": "bar", 26 }, 27 headers: metadata.Metadata{ 28 "foo": "baz", 29 }, 30 overwrite: false, 31 }, 32 } 33 34 for _, d := range testData { 35 c := &clientWrapper{ 36 headers: d.headers, 37 } 38 39 ctx := metadata.NewContext(context.Background(), d.existing) 40 ctx = c.setHeaders(ctx) 41 md, _ := metadata.FromContext(ctx) 42 43 for k, v := range d.headers { 44 if d.overwrite && md[k] != v { 45 t.Fatalf("Expected %s=%s got %s=%s", k, v, k, md[k]) 46 } 47 if !d.overwrite && md[k] != d.existing[k] { 48 t.Fatalf("Expected %s=%s got %s=%s", k, d.existing[k], k, md[k]) 49 } 50 } 51 } 52 53 }