1package grpc_opentracing 2 3import ( 4 "fmt" 5 grpc_ctxtags "github.com/grpc-ecosystem/go-grpc-middleware/tags" 6 "github.com/stretchr/testify/assert" 7 "testing" 8) 9 10func TestTagsCarrier_Set_JaegerTraceFormat(t *testing.T) { 11 var ( 12 fakeTraceSampled = 1 13 fakeInboundTraceId = "deadbeef" 14 fakeInboundSpanId = "c0decafe" 15 traceHeaderName = "uber-trace-id" 16 ) 17 18 traceHeaderValue := fmt.Sprintf("%s:%s:%s:%d", fakeInboundTraceId, fakeInboundSpanId, fakeInboundSpanId, fakeTraceSampled) 19 20 c := &tagsCarrier{ 21 Tags: grpc_ctxtags.NewTags(), 22 traceHeaderName: traceHeaderName, 23 } 24 25 c.Set(traceHeaderName, traceHeaderValue) 26 27 assert.EqualValues(t, map[string]interface{}{ 28 TagTraceId: fakeInboundTraceId, 29 TagSpanId: fakeInboundSpanId, 30 TagSampled: "true", 31 }, c.Tags.Values()) 32} 33