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); } }