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