105 lines
2.4 KiB
PHP
105 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Jaeger\Tests\Codec;
|
|
|
|
use Jaeger\Codec\ZipkinCodec;
|
|
use Jaeger\SpanContext;
|
|
use PHPUnit\Framework\TestCase;
|
|
use const Jaeger\DEBUG_FLAG;
|
|
use const Jaeger\SAMPLED_FLAG;
|
|
|
|
class ZipkinCodecTest extends TestCase
|
|
{
|
|
/** @var ZipkinCodec */
|
|
private $codec;
|
|
|
|
function setUp(): void
|
|
{
|
|
$this->codec = new ZipkinCodec;
|
|
}
|
|
|
|
function testInject()
|
|
{
|
|
// Given
|
|
$traceId = 123;
|
|
$spanId = 456;
|
|
$parentId = 789;
|
|
|
|
$spanContext = new SpanContext(
|
|
$traceId,
|
|
$spanId,
|
|
$parentId,
|
|
SAMPLED_FLAG
|
|
);
|
|
$carrier = [];
|
|
|
|
// When
|
|
$this->codec->inject($spanContext, $carrier);
|
|
|
|
// Then
|
|
$this->assertEquals('7b', $carrier['X-B3-TraceId']);
|
|
$this->assertEquals('1c8', $carrier['X-B3-SpanId']);
|
|
$this->assertEquals('315', $carrier['X-B3-ParentSpanId']);
|
|
$this->assertSame(1, $carrier['X-B3-Flags']);
|
|
}
|
|
|
|
function testExtract()
|
|
{
|
|
// Given
|
|
$carrier = [
|
|
'x-b3-traceid' => 'a53bf337d7e455e1',
|
|
'x-b3-spanid' => '153bf227d1f455a1',
|
|
'x-b3-parentspanid' => 'a53bf337d7e455e1',
|
|
'x-b3-flags' => '1',
|
|
];
|
|
|
|
// When
|
|
$spanContext = $this->codec->extract($carrier);
|
|
|
|
// Then
|
|
$this->assertEquals(new SpanContext(
|
|
'-6540366612654696991',
|
|
'1530082751262512545',
|
|
'-6540366612654696991',
|
|
DEBUG_FLAG
|
|
), $spanContext);
|
|
}
|
|
|
|
function testExtractWithoutParentSpanId()
|
|
{
|
|
// Given
|
|
$carrier = [
|
|
'x-b3-traceid' => '8d824d69da5f50d9',
|
|
'x-b3-spanid' => '8d824d69da5f50d9',
|
|
'x-b3-flags' => '1',
|
|
];
|
|
|
|
// When
|
|
$spanContext = $this->codec->extract($carrier);
|
|
|
|
// Then
|
|
$this->assertEquals(new SpanContext(
|
|
'-8249946450358742823',
|
|
'-8249946450358742823',
|
|
'0',
|
|
DEBUG_FLAG
|
|
), $spanContext);
|
|
}
|
|
|
|
function testExtractInvalidHeader()
|
|
{
|
|
// Given
|
|
$carrier = [
|
|
'x-b3-traceid' => 'zzzz',
|
|
'x-b3-spanid' => '463ac35c9f6413ad48485a3953bb6124',
|
|
'x-b3-flags' => '1',
|
|
];
|
|
|
|
// When
|
|
$spanContext = $this->codec->extract($carrier);
|
|
|
|
// Then
|
|
$this->assertEquals(null, $spanContext);
|
|
}
|
|
}
|