abstract class ApiTestAbstract in TMGMT Translator Smartling 8.2
Same name in this branch
- 8.2 api-sdk-php/tests/unit/ApiTestAbstract.php \Smartling\Tests\Unit\ApiTestAbstract
- 8.2 vendor/smartling/api-sdk-php/tests/unit/ApiTestAbstract.php \Smartling\Tests\Unit\ApiTestAbstract
Same name and namespace in other branches
- 8.4 vendor/smartling/api-sdk-php/tests/unit/ApiTestAbstract.php \Smartling\Tests\Unit\ApiTestAbstract
- 8.3 vendor/smartling/api-sdk-php/tests/unit/ApiTestAbstract.php \Smartling\Tests\Unit\ApiTestAbstract
Class ApiTestAbstract @package Smartling\Tests
Hierarchy
- class \Smartling\Tests\Unit\ApiTestAbstract extends \Smartling\Tests\Unit\PHPUnit_Framework_TestCase
Expanded class hierarchy of ApiTestAbstract
4 files declare their use of ApiTestAbstract
- AuthApiTest.php in api-sdk-php/
tests/ unit/ AuthApiTest.php - AuthApiTest.php in vendor/
smartling/ api-sdk-php/ tests/ unit/ AuthApiTest.php - ContextApiTest.php in api-sdk-php/
tests/ unit/ ContextApiTest.php - ContextApiTest.php in vendor/
smartling/ api-sdk-php/ tests/ unit/ ContextApiTest.php
File
- api-sdk-php/
tests/ unit/ ApiTestAbstract.php, line 15
Namespace
Smartling\Tests\UnitView source
abstract class ApiTestAbstract extends \PHPUnit_Framework_TestCase {
const JSON_OBJECT_AS_ARRAY = 1;
/**
* @var \PHPUnit_Framework_MockObject_MockObject|BaseApiAbstract
*/
protected $object;
/**
* @var string
*/
protected $userIdentifier = 'SomeUserIdentifier';
/**
* @var string
*/
protected $secretKey = 'SomeSecretKey';
/**
* @var string
*/
protected $projectId = 'SomeProjectId';
/**
* @var string
*/
protected $validResponse = '{"response":{"data":{"wordCount":1629,"stringCount":503,"overWritten":false},"code":"SUCCESS","messages":[]}}';
/**
* @var string
*/
protected $responseWithException = '{"response":{"data":null,"code":"VALIDATION_ERROR","errors":[{"message":"Validation error text"}]}}';
/**
* @var string
*/
protected $responseAsync = '{"response":{"data":{"message":"message", "url":"url"},"code":"ACCEPTED"}}';
/**
* @var PHPUnit_Framework_MockObject_MockObject|ClientInterface
*/
protected $client;
/**
* @var PHPUnit_Framework_MockObject_MockObject|AuthApiInterface
*/
protected $authProvider;
/**
* @var string
*/
protected $streamPlaceholder = 'stream';
/**
* @var PHPUnit_Framework_MockObject_MockObject|ResponseInterface
*/
protected $responseMock;
protected static $requestInterfaceMethods = [
'setUrl',
'getUrl',
'getResource',
'getQuery',
'setQuery',
'getMethod',
'setMethod',
'getScheme',
'setScheme',
'getPort',
'setPort',
'getHost',
'setHost',
'getPath',
'setPath',
'getConfig',
];
protected static $hasEmitterInterfaceMethods = [
'getEmitter',
];
protected static $messageInterfaceMethods = [
'__toString',
'getProtocolVersion',
'setBody',
'getBody',
'getHeaders',
'getHeader',
'getHeaderAsArray',
'hasHeader',
'removeHeader',
'addHeader',
'addHeaders',
'setHeader',
'setHeaders',
];
protected static $clientInterfaceMethods = [
'createRequest',
'get',
'head',
'delete',
'put',
'patch',
'post',
'options',
'send',
'request',
'getDefaultOption',
'setDefaultOption',
'getBaseUrl',
];
protected static $responseInterfaceMethods = [
'getStatusCode',
'setStatusCode',
'getReasonPhrase',
'setReasonPhrase',
'getEffectiveUrl',
'setEffectiveUrl',
'json',
'xml',
];
/**
* Invokes protected or private method of given object.
*
* @param BaseApiAbstract $object
* Object with protected or private method to invoke.
* @param string $methodName
* Name of the property to invoke.
* @param array $parameters
* Array of parameters to be passed to invoking method.
*
* @return mixed
* Value invoked method will return or exception.
*/
protected function invokeMethod($object, $methodName, array $parameters = []) {
$reflection = new \ReflectionClass(get_class($object));
$method = $reflection
->getMethod($methodName);
$method
->setAccessible(true);
return $method
->invokeArgs($object, $parameters);
}
/**
* Reads protected or private property of given object.
*
* @param BaseApiAbstract $object
* Object with protected or private property.
* @param string $propertyName
* Name of the property to access.
*
* @return mixed
* Value of read property.
*/
protected function readProperty($object, $propertyName) {
$reflection = new \ReflectionClass(get_class($object));
$property = $reflection
->getProperty($propertyName);
$property
->setAccessible(true);
return $property
->getValue($object);
}
protected function prepareHttpClientMock() {
$this->client = $this
->getMockBuilder('GuzzleHttp\\Client')
->setMethods(array_merge(self::$clientInterfaceMethods, self::$hasEmitterInterfaceMethods))
->disableOriginalConstructor()
->getMock();
}
protected function prepareAuthProviderMock() {
$this->authProvider = $this
->getMockBuilder('\\Smartling\\AuthApi\\AuthApiInterface')
->setMethods([
'getAccessToken',
'getTokenType',
'resetToken',
])
->setConstructorArgs([
$this->userIdentifier,
$this->secretKey,
$this->client,
])
->getMock();
$this->authProvider
->expects($this
->any())
->method('getAccessToken')
->willReturn('fakeToken');
$this->authProvider
->expects($this
->any())
->method('getTokenType')
->willReturn('Bearer');
$this->authProvider
->expects($this
->any())
->method('resetToken');
}
protected function prepareClientResponseMock($setDefaultResponse = true) {
$this->responseMock = $this
->getMockBuilder('GuzzleHttp\\Psr7\\Response')
->setMethods(array_merge(self::$responseInterfaceMethods, self::$messageInterfaceMethods))
->disableOriginalConstructor()
->getMock();
if (true === $setDefaultResponse) {
$this->responseMock
->expects($this
->any())
->method('getBody')
->willReturn($this->validResponse);
}
$this->responseMock
->expects($this
->any())
->method('getStatusCode')
->willReturn(200);
}
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp() {
$this
->prepareHttpClientMock();
$this
->prepareAuthProviderMock();
$this
->prepareClientResponseMock();
}
}