@@ -3,6 +3,7 @@ package zipkintracer
3
3
import (
4
4
"testing"
5
5
6
+ "github.com/openzipkin/zipkin-go/model"
6
7
"github.com/openzipkin/zipkin-go/reporter"
7
8
"github.com/openzipkin/zipkin-go/reporter/recorder"
8
9
@@ -16,9 +17,54 @@ func newTracer(r reporter.Reporter, opts ...zipkin.TracerOption) opentracing.Tra
16
17
return Wrap (tr )
17
18
}
18
19
20
+ func TestOTKindTagIsParsedSuccessfuly (t * testing.T ) {
21
+ tagCases := []map [string ]interface {}{
22
+ {string (ext .SpanKind ): "server" },
23
+ {"span.kind" : "server" },
24
+ {"span.kind" : ext .SpanKindRPCServerEnum },
25
+ }
26
+ for _ , tags := range tagCases {
27
+ opts := parseTagsAsZipkinOptions (tags )
28
+
29
+ rec := recorder .NewReporter ()
30
+ tr , _ := zipkin .NewTracer (rec )
31
+ sp := tr .StartSpan ("test" , opts ... )
32
+ sp .Finish ()
33
+ spans := rec .Flush ()
34
+ if want , have := 1 , len (spans ); want != have {
35
+ t .Fatalf ("unexpected number of spans, want %d, have %d" , want , have )
36
+ }
37
+
38
+ if want , have := model .Server , spans [0 ].Kind ; want != have {
39
+ t .Errorf ("unexpected kind value, want %s, have %s" , want , have )
40
+ }
41
+ }
42
+ }
43
+
44
+ func TestOTKindTagIsCantBeParsed (t * testing.T ) {
45
+ tags := map [string ]interface {}{"span.kind" : "banana" }
46
+ opts := parseTagsAsZipkinOptions (tags )
47
+
48
+ rec := recorder .NewReporter ()
49
+ tr , _ := zipkin .NewTracer (rec )
50
+ sp := tr .StartSpan ("test" , opts ... )
51
+ sp .Finish ()
52
+ spans := rec .Flush ()
53
+ if want , have := 1 , len (spans ); want != have {
54
+ t .Fatalf ("unexpected number of spans, want %d, have %d" , want , have )
55
+ }
56
+
57
+ if want , have := model .Undetermined , spans [0 ].Kind ; want != have {
58
+ t .Errorf ("unexpected kind value, want %s, have %s" , want , have )
59
+ }
60
+
61
+ if want , have := "banana" , spans [0 ].Tags ["span.kind" ]; want != have {
62
+ t .Errorf ("unexpected tag value, want %s, have %s" , want , have )
63
+ }
64
+ }
65
+
19
66
func TestOptionsFromOTTags (t * testing.T ) {
20
67
tags := map [string ]interface {}{}
21
- tags [string (ext .SpanKind )] = "server"
22
68
tags [string (ext .PeerService )] = "service_a"
23
69
tags ["key" ] = "value"
24
70
opts := parseTagsAsZipkinOptions (tags )
@@ -32,10 +78,6 @@ func TestOptionsFromOTTags(t *testing.T) {
32
78
t .Fatalf ("unexpected number of spans, want %d, have %d" , want , have )
33
79
}
34
80
35
- if want , have := "SERVER" , string (spans [0 ].Kind ); want != have {
36
- t .Errorf ("unexpected span kind, want %s, have %s" , want , have )
37
- }
38
-
39
81
if want , have := "service_a" , spans [0 ].RemoteEndpoint .ServiceName ; want != have {
40
82
t .Errorf ("unexpected remote service name, want %s, have %s" , want , have )
41
83
}
0 commit comments