Viewing file: TelnyxTelemetryTest.php (3.66 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Telnyx;
/** * @internal * @coversNothing */ final class TelnyxTelemetryTest extends \Telnyx\TestCase { const TEST_API_KEY = 'KEY123'; const TEST_RESOURCE_ID = 'acct_123'; const TEST_EXTERNALACCOUNT_ID = 'ba_123'; const TEST_PERSON_ID = 'person_123';
const FAKE_VALID_RESPONSE = '{ "data": [], "record_type": "list", "meta": [], "url": "/v2/phone_numbers" }';
protected function setUp() { // clear static telemetry data ApiRequestor::resetTelemetry(); }
public function testNoTelemetrySentIfNotEnabled() { Telnyx::setApiKey(self::TEST_API_KEY); $requestheaders = null;
$stub = $this ->getMockBuilder('HttpClient\\ClientInterface') ->setMethods(['request']) ->getMock() ;
$stub->expects(static::any()) ->method('request') ->with( static::anything(), static::anything(), static::callback(function ($headers) use (&$requestheaders) { foreach ($headers as $index => $header) { // capture the requested headers and format back to into an assoc array $components = \explode(': ', $header, 2); $requestheaders[$components[0]] = $components[1]; }
return true; }), static::anything(), static::anything() )->willReturn([self::FAKE_VALID_RESPONSE, 200, ['request-id' => '123']]);
ApiRequestor::setHttpClient($stub);
// make one request to capture its result PhoneNumber::all(); static::assertArrayNotHasKey('X-Telnyx-Client-Telemetry', $requestheaders);
// make another request and verify telemetry isn't sent PhoneNumber::all(); static::assertArrayNotHasKey('X-Telnyx-Client-Telemetry', $requestheaders);
ApiRequestor::setHttpClient(null); }
public function testTelemetrySetIfEnabled() { Telnyx::setApiKey(self::TEST_API_KEY); Telnyx::setEnableTelemetry(true);
$requestheaders = null;
$stub = $this ->getMockBuilder('HttpClient\\ClientInterface') ->setMethods(['request']) ->getMock() ;
$stub->expects(static::any()) ->method('request') ->with( static::anything(), static::anything(), static::callback(function ($headers) use (&$requestheaders) { // capture the requested headers and format back to into an assoc array foreach ($headers as $index => $header) { $components = \explode(': ', $header, 2); $requestheaders[$components[0]] = $components[1]; }
return true; }), static::anything(), static::anything() )->willReturn([self::FAKE_VALID_RESPONSE, 200, ['request-id' => ['req_123']]]);
ApiRequestor::setHttpClient($stub);
// make one request to capture its result PhoneNumber::all(); static::assertArrayNotHasKey('X-Telnyx-Client-Telemetry', $requestheaders);
// make another request to send the previous PhoneNumber::all(); static::assertArrayHasKey('X-Telnyx-Client-Telemetry', $requestheaders);
$data = \json_decode($requestheaders['X-Telnyx-Client-Telemetry'], true); static::assertNotNull($data['last_request_metrics']['request_duration_ms']);
ApiRequestor::setHttpClient(null); } }
|