public function DownloadFlowTest::testDownloadSuccessPartialFlowImportSkipped in TMGMT Translator Smartling 8.4
Same name and namespace in other branches
- 8.3 tests/src/Kernel/DownloadFlowTest.php \Drupal\Tests\tmgmt_smartling\Kernel\DownloadFlowTest::testDownloadSuccessPartialFlowImportSkipped()
Download success partial flow: import skipped.
File
- tests/
src/ Kernel/ DownloadFlowTest.php, line 145
Class
- DownloadFlowTest
- Tests file download flow.
Namespace
Drupal\Tests\tmgmt_smartling\KernelCode
public function testDownloadSuccessPartialFlowImportSkipped() {
$translate_job = $this
->createJobWithItems([
'batch_uid' => 'uid',
'batch_execute_on_job' => 1,
]);
$translate_job
->set('job_file_content_hash', '0f635d0e0f3874fff8b581c132e6c7a7');
// Remove job items in order to not to force import. We need to avoid
// Drupal::entityTypeManager mocking. See tmgmt_smartling_download_file,
// line 94.
foreach ($translate_job
->getItems() as $item) {
$item
->delete();
}
$translate_job
->save();
$this->translationRequestManagerMock
->expects($this
->never())
->method('commitError');
$this->translationRequestManagerMock
->expects($this
->once())
->method('getTranslationRequest')
->willReturn([
'translationRequestUid' => 'test',
'fileUri' => 'test_file_uri.xml',
]);
$this->apiWrapperMock
->expects($this
->once())
->method('getApi')
->with('file')
->willReturn($this->fileApiMock);
$this->apiWrapperMock
->expects($this
->once())
->method('createAuditLogRecord')
->with($translate_job, NULL, \Drupal::currentUser(), CreateRecordParameters::ACTION_TYPE_DOWNLOAD);
$this->fileApiMock
->expects($this
->once())
->method('downloadFile')
->with('test_file_uri.xml', 'de', $this
->callback(function ($subject) {
$params = $subject
->exportToArray();
return $params['retrievalType'] == 'published';
}))
->willReturn('xml');
$this->translationRequestManagerMock
->expects($this
->once())
->method('commitSuccessfulDownload')
->with($translate_job)
->willReturn(TRUE);
$this->pluginMock
->expects($this
->once())
->method('validateImport')
->with('public://tmgmt_smartling_translations/test_file_uri.xml', $translate_job)
->willReturn(TRUE);
$this->pluginMock
->expects($this
->never())
->method('import');
$this->apiWrapperMock
->expects($this
->once())
->method('createFirebaseRecord')
->with('tmgmt_smartling', 'notifications', 10, [
"message" => 'Translation for "public://tmgmt_smartling_translations/test_file_uri.xml" (job id = 1) was successfully downloaded but import was skipped: downloaded and existing translations are equal.',
"type" => "warning",
]);
tmgmt_smartling_download_file($translate_job);
}