67 lines
2.2 KiB
PHP
67 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace OpenTelemetry\Tests\Integration\SDK;
|
|
|
|
use OpenTelemetry\API\Trace as API;
|
|
use OpenTelemetry\API\Trace\NonRecordingSpan;
|
|
use OpenTelemetry\API\Trace\SpanContext;
|
|
use OpenTelemetry\Context\Context;
|
|
use OpenTelemetry\Context\ContextInterface;
|
|
use OpenTelemetry\SDK\Common\Attribute\Attributes;
|
|
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOffSampler;
|
|
use OpenTelemetry\SDK\Trace\SamplingResult;
|
|
use PHPUnit\Framework\Attributes\CoversNothing;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
#[CoversNothing]
|
|
class AlwaysOffSamplerTest extends TestCase
|
|
{
|
|
public function test_always_off_sampler(): void
|
|
{
|
|
$parentTraceState = $this->createMock(API\TraceStateInterface::class);
|
|
$sampler = new AlwaysOffSampler();
|
|
$decision = $sampler->shouldSample(
|
|
$this->createParentContext(true, false, $parentTraceState),
|
|
'4bf92f3577b34da6a3ce929d0e0e4736',
|
|
'test.opentelemetry.io',
|
|
API\SpanKind::KIND_INTERNAL,
|
|
Attributes::create([]),
|
|
[],
|
|
);
|
|
|
|
$this->assertEquals(SamplingResult::DROP, $decision->getDecision());
|
|
$this->assertEquals($parentTraceState, $decision->getTraceState());
|
|
}
|
|
|
|
public function test_always_off_sampler_description(): void
|
|
{
|
|
$sampler = new AlwaysOffSampler();
|
|
$this->assertEquals('AlwaysOffSampler', $sampler->getDescription());
|
|
}
|
|
|
|
private function createParentContext(bool $sampled, bool $isRemote, ?API\TraceStateInterface $traceState = null): ContextInterface
|
|
{
|
|
$traceFlag = $sampled ? API\TraceFlags::SAMPLED : API\TraceFlags::DEFAULT;
|
|
|
|
if ($isRemote) {
|
|
$spanContext = SpanContext::createFromRemoteParent(
|
|
'4bf92f3577b34da6a3ce929d0e0e4736',
|
|
'00f067aa0ba902b7',
|
|
$traceFlag,
|
|
$traceState
|
|
);
|
|
} else {
|
|
$spanContext = SpanContext::create(
|
|
'4bf92f3577b34da6a3ce929d0e0e4736',
|
|
'00f067aa0ba902b7',
|
|
$traceFlag,
|
|
$traceState
|
|
);
|
|
}
|
|
|
|
return Context::getRoot()->withContextValue(new NonRecordingSpan($spanContext));
|
|
}
|
|
}
|