...

Source file src/github.com/opentracing/opentracing-go/propagation_test.go

Documentation: github.com/opentracing/opentracing-go

     1  package opentracing
     2  
     3  import (
     4  	"net/http"
     5  	"strconv"
     6  	"testing"
     7  )
     8  
     9  func TestTextMapCarrierInject(t *testing.T) {
    10  	m := make(map[string]string)
    11  	m["NotOT"] = "blah"
    12  	m["opname"] = "AlsoNotOT"
    13  	tracer := testTracer{}
    14  	span := tracer.StartSpan("someSpan")
    15  	fakeID := span.Context().(testSpanContext).FakeID
    16  
    17  	carrier := TextMapCarrier(m)
    18  	if err := span.Tracer().Inject(span.Context(), TextMap, carrier); err != nil {
    19  		t.Fatal(err)
    20  	}
    21  
    22  	if len(m) != 3 {
    23  		t.Errorf("Unexpected header length: %v", len(m))
    24  	}
    25  	// The prefix comes from just above; the suffix comes from
    26  	// testTracer.Inject().
    27  	if m["testprefix-fakeid"] != strconv.Itoa(fakeID) {
    28  		t.Errorf("Could not find fakeid at expected key")
    29  	}
    30  }
    31  
    32  func TestTextMapCarrierExtract(t *testing.T) {
    33  	m := make(map[string]string)
    34  	m["NotOT"] = "blah"
    35  	m["opname"] = "AlsoNotOT"
    36  	m["testprefix-fakeid"] = "42"
    37  	tracer := testTracer{}
    38  
    39  	carrier := TextMapCarrier(m)
    40  	extractedContext, err := tracer.Extract(TextMap, carrier)
    41  	if err != nil {
    42  		t.Fatal(err)
    43  	}
    44  
    45  	if extractedContext.(testSpanContext).FakeID != 42 {
    46  		t.Errorf("Failed to read testprefix-fakeid correctly")
    47  	}
    48  }
    49  
    50  func TestHTTPHeaderInject(t *testing.T) {
    51  	h := http.Header{}
    52  	h.Add("NotOT", "blah")
    53  	h.Add("opname", "AlsoNotOT")
    54  	tracer := testTracer{}
    55  	span := tracer.StartSpan("someSpan")
    56  	fakeID := span.Context().(testSpanContext).FakeID
    57  
    58  	// Use HTTPHeadersCarrier to wrap around `h`.
    59  	carrier := HTTPHeadersCarrier(h)
    60  	if err := span.Tracer().Inject(span.Context(), HTTPHeaders, carrier); err != nil {
    61  		t.Fatal(err)
    62  	}
    63  
    64  	if len(h) != 3 {
    65  		t.Errorf("Unexpected header length: %v", len(h))
    66  	}
    67  	// The prefix comes from just above; the suffix comes from
    68  	// testTracer.Inject().
    69  	if h.Get("testprefix-fakeid") != strconv.Itoa(fakeID) {
    70  		t.Errorf("Could not find fakeid at expected key")
    71  	}
    72  }
    73  
    74  func TestHTTPHeaderExtract(t *testing.T) {
    75  	h := http.Header{}
    76  	h.Add("NotOT", "blah")
    77  	h.Add("opname", "AlsoNotOT")
    78  	h.Add("testprefix-fakeid", "42")
    79  	tracer := testTracer{}
    80  
    81  	// Use HTTPHeadersCarrier to wrap around `h`.
    82  	carrier := HTTPHeadersCarrier(h)
    83  	spanContext, err := tracer.Extract(HTTPHeaders, carrier)
    84  	if err != nil {
    85  		t.Fatal(err)
    86  	}
    87  
    88  	if spanContext.(testSpanContext).FakeID != 42 {
    89  		t.Errorf("Failed to read testprefix-fakeid correctly")
    90  	}
    91  }
    92  

View as plain text