|
19 | 19 |
|
20 | 20 | use OpenCensus\Core\Context; |
21 | 21 | use OpenCensus\Trace\Exporter\ZipkinExporter; |
| 22 | +use OpenCensus\Trace\MessageEvent; |
22 | 23 | use OpenCensus\Trace\SpanContext; |
23 | 24 | use OpenCensus\Trace\Span; |
24 | 25 | use OpenCensus\Trace\Tracer\TracerInterface; |
@@ -79,25 +80,32 @@ public function testFormatsTrace() |
79 | 80 | } |
80 | 81 | } |
81 | 82 |
|
82 | | - public function testSpanKind() |
| 83 | + /** |
| 84 | + * @dataProvider spanOptionsForKind |
| 85 | + */ |
| 86 | + public function testSpanKind($spanOpts, $kind) |
83 | 87 | { |
84 | 88 | $tracer = new ContextTracer(new SpanContext('testtraceid')); |
85 | | - $tracer->inSpan(['name' => 'main'], function () use ($tracer) { |
86 | | - $tracer->inSpan(['name' => 'span1'], 'usleep', [1]); |
87 | | - $tracer->inSpan(['name' => 'span2'], 'usleep', [1]); |
88 | | - $tracer->inSpan(['name' => 'span3'], 'usleep', [1]); |
89 | | - $tracer->inSpan(['name' => 'span4'], 'usleep', [1]); |
| 89 | + $tracer->inSpan(['name' => 'main'], function () use ($tracer, $spanOpts) { |
| 90 | + $tracer->inSpan($spanOpts, 'usleep', [1]); |
90 | 91 | }); |
91 | 92 |
|
92 | 93 | $reporter = new ZipkinExporter('myapp', 'localhost', 9411); |
93 | 94 | $spans = $reporter->convertSpans($tracer); |
94 | 95 |
|
95 | | - $annotationValue = function ($annotation) { |
96 | | - return $annotation['value']; |
97 | | - }; |
98 | | - |
99 | | - $this->assertCount(5, $spans); |
| 96 | + $this->assertCount(2, $spans); |
100 | 97 | $this->assertFalse(array_key_exists('kind', $spans[0])); |
| 98 | + $this->assertEquals($kind, $spans[1]['kind']); |
| 99 | + } |
| 100 | + |
| 101 | + public function spanOptionsForKind() |
| 102 | + { |
| 103 | + return [ |
| 104 | + [['name' => 'Recv.Span1'], 'SERVER'], |
| 105 | + [['name' => 'Sent.Span2'], 'CLIENT'], |
| 106 | + [['name' => 'span3', 'timeEvents' => [new MessageEvent(MessageEvent::TYPE_RECEIVED, '')]], 'SERVER'], |
| 107 | + [['name' => 'span4', 'timeEvents' => [new MessageEvent(MessageEvent::TYPE_SENT, '')]], 'CLIENT'], |
| 108 | + ]; |
101 | 109 | } |
102 | 110 |
|
103 | 111 | public function testSpanDebug() |
|
0 commit comments