opentelemetry-php/tests/Unit/SDK/SdkTest.php

85 lines
2.4 KiB
PHP

<?php
declare(strict_types=1);
namespace OpenTelemetry\Tests\Unit\SDK;
use AssertWell\PHPUnitGlobalState\EnvironmentVariables;
use OpenTelemetry\Context\Propagation\TextMapPropagatorInterface;
use OpenTelemetry\SDK\Common\Configuration\Variables;
use OpenTelemetry\SDK\Metrics\MeterProviderInterface;
use OpenTelemetry\SDK\Sdk;
use OpenTelemetry\SDK\SdkBuilder;
use OpenTelemetry\SDK\Trace\TracerProviderInterface;
use PHPUnit\Framework\TestCase;
/**
* @covers \OpenTelemetry\SDK\Sdk
*/
class SdkTest extends TestCase
{
use EnvironmentVariables;
public function tearDown(): void
{
self::restoreEnvironmentVariables();
}
public function test_is_not_disabled_by_default(): void
{
$this->assertFalse(Sdk::isDisabled());
}
/**
* @dataProvider disabledProvider
*/
public function test_is_disabled(string $value, bool $expected): void
{
self::setEnvironmentVariable('OTEL_SDK_DISABLED', $value);
$this->assertSame($expected, Sdk::isDisabled());
}
public function disabledProvider(): array
{
return [
['true', true],
['false', false],
];
}
/**
* @dataProvider instrumentationDisabledProvider
*/
public function test_is_instrumentation_disabled(string $value, string $name, bool $expected): void
{
$this->setEnvironmentVariable(Variables::OTEL_PHP_DISABLED_INSTRUMENTATIONS, $value);
$this->assertSame($expected, Sdk::isInstrumentationDisabled($name));
}
public function instrumentationDisabledProvider(): array
{
return [
['foo,bar', 'foo', true],
['foo,bar', 'bar', true],
['', 'foo', false],
['foo', 'foo', true],
];
}
public function test_builder(): void
{
$this->assertInstanceOf(SdkBuilder::class, Sdk::builder());
}
public function test_getters(): void
{
$propagator = $this->createMock(TextMapPropagatorInterface::class);
$meterProvider = $this->createMock(MeterProviderInterface::class);
$tracerProvider = $this->createMock(TracerProviderInterface::class);
$sdk = new Sdk($tracerProvider, $meterProvider, $propagator);
$this->assertSame($propagator, $sdk->getPropagator());
$this->assertSame($meterProvider, $sdk->getMeterProvider());
$this->assertSame($tracerProvider, $sdk->getTracerProvider());
}
}