package trace import ( "net/http" "net/http/httptest" "testing" "github.com/stretchr/testify/assert" "google.golang.org/grpc/metadata" ) func TestHttpPropagator_Extract(t *testing.T) { req := httptest.NewRequest(http.MethodGet, "http://localhost", nil) req.Header.Set(traceIdKey, "trace") req.Header.Set(spanIdKey, "span") carrier, err := Extract(HttpFormat, req.Header) assert.Nil(t, err) assert.Equal(t, "trace", carrier.Get(traceIdKey)) assert.Equal(t, "span", carrier.Get(spanIdKey)) _, err = Extract(HttpFormat, req) assert.Equal(t, ErrInvalidCarrier, err) } func TestHttpPropagator_Inject(t *testing.T) { req := httptest.NewRequest(http.MethodGet, "http://localhost", nil) req.Header.Set(traceIdKey, "trace") req.Header.Set(spanIdKey, "span") carrier, err := Inject(HttpFormat, req.Header) assert.Nil(t, err) assert.Equal(t, "trace", carrier.Get(traceIdKey)) assert.Equal(t, "span", carrier.Get(spanIdKey)) _, err = Inject(HttpFormat, req) assert.Equal(t, ErrInvalidCarrier, err) } func TestGrpcPropagator_Extract(t *testing.T) { md := metadata.New(map[string]string{ traceIdKey: "trace", spanIdKey: "span", }) carrier, err := Extract(GrpcFormat, md) assert.Nil(t, err) assert.Equal(t, "trace", carrier.Get(traceIdKey)) assert.Equal(t, "span", carrier.Get(spanIdKey)) _, err = Extract(GrpcFormat, 1) assert.Equal(t, ErrInvalidCarrier, err) _, err = Extract(nil, 1) assert.Equal(t, ErrInvalidCarrier, err) } func TestGrpcPropagator_Inject(t *testing.T) { md := metadata.New(map[string]string{ traceIdKey: "trace", spanIdKey: "span", }) carrier, err := Inject(GrpcFormat, md) assert.Nil(t, err) assert.Equal(t, "trace", carrier.Get(traceIdKey)) assert.Equal(t, "span", carrier.Get(spanIdKey)) _, err = Inject(GrpcFormat, 1) assert.Equal(t, ErrInvalidCarrier, err) _, err = Inject(nil, 1) assert.Equal(t, ErrInvalidCarrier, err) }