createMock(API\TraceStateInterface::class); $sampler = new AlwaysOnSampler(); $decision = $sampler->shouldSample( $this->createParentContext(true, false, $parentTraceState), '4bf92f3577b34da6a3ce929d0e0e4736', 'test.opentelemetry.io', API\SpanKind::KIND_INTERNAL, Attributes::create([]), [], ); $this->assertEquals(SamplingResult::RECORD_AND_SAMPLE, $decision->getDecision()); $this->assertEquals($parentTraceState, $decision->getTraceState()); } public function test_always_on_sampler_description(): void { $sampler = new AlwaysOnSampler(); $this->assertEquals('AlwaysOnSampler', $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)); } }