class LingotekApiUnitTest in Lingotek Translation 8
Same name and namespace in other branches
- 8.2 tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 4.0.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.0.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.1.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.2.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.3.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.4.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.5.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.6.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.7.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
- 3.8.x tests/src/Unit/Remote/LingotekApiUnitTest.php \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
@coversDefaultClass \Drupal\lingotek\Remote\LingotekApi @group lingotek @preserveGlobalState disabled
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses PhpunitCompatibilityTrait
- class \Drupal\Tests\lingotek\Unit\Remote\LingotekApiUnitTest
Expanded class hierarchy of LingotekApiUnitTest
File
- tests/
src/ Unit/ Remote/ LingotekApiUnitTest.php, line 21
Namespace
Drupal\Tests\lingotek\Unit\RemoteView source
class LingotekApiUnitTest extends UnitTestCase {
/**
* @var \Drupal\lingotek\Remote\LingotekApi
*/
protected $lingotek_api;
/**
* @var \Drupal\lingotek\Remote\LingotekHttpInterface
*/
protected $client;
/**
* {@inheritdoc}
*/
protected function setUp() {
$this->client = $this
->getMockBuilder('\\Drupal\\lingotek\\Remote\\LingotekHttpInterface')
->disableOriginalConstructor()
->getMock();
$logger = $this
->getMockBuilder('\\Psr\\Log\\LoggerInterface')
->getMock();
$this->lingotek_api = new LingotekApi($this->client, $logger);
}
/**
* @covers ::getDocument
*/
public function testGetDocument() {
// Ensure that the right call is done for testing if a document is imported.
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$this->client
->expects($this
->at(0))
->method('get')
->with('/api/document/fancy-document-id/status')
->will($this
->returnValue($response));
$this->lingotek_api
->getDocument('fancy-document-id');
}
/**
* @covers ::addTranslation
*/
public function testAddTranslation() {
// Ensure that the workflow is set when it's need to be.
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$this->client
->expects($this
->at(0))
->method('post')
->with('/api/document/fancy-document-id/translation', [
'locale_code' => 'es_ES',
'workflow_id' => 'my_workflow',
])
->will($this
->returnValue($response));
$this->client
->expects($this
->at(1))
->method('post')
->with('/api/document/fancy-document-id/translation', [
'locale_code' => 'es_ES',
])
->will($this
->returnValue($response));
$this->lingotek_api
->addTranslation('fancy-document-id', 'es_ES', 'my_workflow');
$this->lingotek_api
->addTranslation('fancy-document-id', 'es_ES', NULL);
}
/**
* @covers ::addTranslation
*/
public function testAddTranslationWithException() {
// Ensure that the workflow is set when it's need to be.
$request = $this
->getMockBuilder('\\Psr\\Http\\Message\\RequestInterface')
->disableOriginalConstructor()
->getMock();
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$response
->expects($this
->any())
->method('getStatusCode')
->willReturn(Response::HTTP_BAD_REQUEST);
$response
->expects($this
->any())
->method('getBody')
->willReturn(json_encode([
'messages' => [
'Translation (es_ES) already exists.',
],
]));
$this->client
->expects($this
->at(0))
->method('post')
->with('/api/document/fancy-document-id/translation', [
'locale_code' => 'es_ES',
'workflow_id' => 'my_workflow',
])
->will($this
->throwException(new ClientException('Client error: `POST https://cms.lingotek.com/api/document/700e102b-b0ad-4ddf-9da1-73c62d587abc/translation` resulted in a `400 Bad Request` response:
{"messages":["Translation (es_ES) already exists."]}', $request, $response)));
$response = $this->lingotek_api
->addTranslation('fancy-document-id', 'es_ES', 'my_workflow');
$this
->assertEquals($response
->getStatusCode(), REsponse::HTTP_CREATED, 'If the translation existed, we succeed instead of failing.');
}
/**
* @covers ::deleteDocument
*/
public function testDeleteDocument() {
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$response
->expects($this
->any())
->method('getStatusCode')
->willReturn(Response::HTTP_ACCEPTED);
$this->client
->expects($this
->at(0))
->method('delete')
->with('/api/document/fancy-document-id')
->will($this
->returnValue($response));
$response = $this->lingotek_api
->deleteDocument('fancy-document-id');
$this
->assertEquals($response
->getStatusCode(), Response::HTTP_ACCEPTED);
}
/**
* @covers ::deleteDocument
*/
public function testDeleteDocumentThatDoesntExist() {
$this->client
->expects($this
->at(0))
->method('delete')
->with('/api/document/fancy-document-id')
->will($this
->throwException(new \Exception('', Response::HTTP_NOT_FOUND)));
$response = $this->lingotek_api
->deleteDocument('fancy-document-id');
$this
->assertEquals($response
->getStatusCode(), Response::HTTP_NOT_FOUND);
}
/**
* @covers ::getCommunities
*/
public function testGetCommunities() {
// Ensure that the limit is set.
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$this->client
->expects($this
->once())
->method('get')
->with('/api/community', [
'limit' => 100,
])
->will($this
->returnValue($response));
$this->lingotek_api
->getCommunities();
}
/**
* @covers ::getProjects
*/
public function testGetProjects() {
// Ensure that the limit and the community_id are set.
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$this->client
->expects($this
->once())
->method('get')
->with('/api/project', [
'community_id' => 'my_community_id',
'limit' => 1000,
])
->will($this
->returnValue($response));
$this->lingotek_api
->getProjects('my_community_id');
}
/**
* @covers ::getVaults
*/
public function testGetVaults() {
// Ensure that the limit is set and the community_id is ignored.
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$this->client
->expects($this
->once())
->method('get')
->with('/api/vault', [
'limit' => 100,
'is_owned' => 'TRUE',
])
->will($this
->returnValue($response));
$this->lingotek_api
->getVaults('community_id');
}
/**
* @covers ::getWorkflows
*/
public function testGetWorkflows() {
$community_id = 'my_community_id';
// Ensure that the limit is set.
$response = $this
->getMockBuilder('\\Psr\\Http\\Message\\ResponseInterface')
->disableOriginalConstructor()
->getMock();
$this->client
->expects($this
->once())
->method('get')
->with('/api/workflow', [
'community_id' => $community_id,
'limit' => 1000,
])
->will($this
->returnValue($response));
$this->lingotek_api
->getWorkflows($community_id);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
LingotekApiUnitTest:: |
protected | property | ||
LingotekApiUnitTest:: |
protected | property | ||
LingotekApiUnitTest:: |
protected | function |
Overrides UnitTestCase:: |
|
LingotekApiUnitTest:: |
public | function | @covers ::addTranslation | |
LingotekApiUnitTest:: |
public | function | @covers ::addTranslation | |
LingotekApiUnitTest:: |
public | function | @covers ::deleteDocument | |
LingotekApiUnitTest:: |
public | function | @covers ::deleteDocument | |
LingotekApiUnitTest:: |
public | function | @covers ::getCommunities | |
LingotekApiUnitTest:: |
public | function | @covers ::getDocument | |
LingotekApiUnitTest:: |
public | function | @covers ::getProjects | |
LingotekApiUnitTest:: |
public | function | @covers ::getVaults | |
LingotekApiUnitTest:: |
public | function | @covers ::getWorkflows | |
PhpunitCompatibilityTrait:: |
public | function | Returns a mock object for the specified class using the available method. | |
PhpunitCompatibilityTrait:: |
public | function | Compatibility layer for PHPUnit 6 to support PHPUnit 4 code. | |
UnitTestCase:: |
protected | property | The random generator. | |
UnitTestCase:: |
protected | property | The app root. | 1 |
UnitTestCase:: |
protected | function | Asserts if two arrays are equal by sorting them first. | |
UnitTestCase:: |
protected | function | Mocks a block with a block plugin. | 1 |
UnitTestCase:: |
protected | function | Returns a stub class resolver. | |
UnitTestCase:: |
public | function | Returns a stub config factory that behaves according to the passed array. | |
UnitTestCase:: |
public | function | Returns a stub config storage that returns the supplied configuration. | |
UnitTestCase:: |
protected | function | Sets up a container with a cache tags invalidator. | |
UnitTestCase:: |
protected | function | Gets the random generator for the utility methods. | |
UnitTestCase:: |
public | function | Returns a stub translation manager that just returns the passed string. | |
UnitTestCase:: |
public | function | Generates a unique random string containing letters and numbers. |