public function ProcessFileAttachmentTest::testProcessFileAttachment in Replication 8
Same name and namespace in other branches
- 8.2 tests/src/Functional/ProcessFileAttachmentTest.php \Drupal\Tests\replication\Functional\ProcessFileAttachmentTest::testProcessFileAttachment()
Test ProcessFileAttachment.
File
- tests/
src/ Functional/ ProcessFileAttachmentTest.php, line 24
Class
- ProcessFileAttachmentTest
- Test the use of the ProcessFileAttachment service.
Namespace
Drupal\Tests\replication\FunctionalCode
public function testProcessFileAttachment() {
$live = Workspace::load(1);
$stage = Workspace::create([
'type' => 'basic',
'machine_name' => 'stage',
'label' => 'Stage',
]);
$stage
->save();
$data = [
'data' => 'aGVsbG8gd29ybGQK',
'uri' => 'public://file1.txt',
'uuid' => '6f9e1f07-e713-4840-bf95-8326c8317800',
];
/** @var FileInterface $file1 */
$file1 = \Drupal::service('replication.process_file_attachment')
->process($data, 'base64_stream');
$file1
->save();
$this
->assertEquals('6f9e1f07-e713-4840-bf95-8326c8317800', $file1
->uuid(), 'The file has the expected UUID.');
$this
->assertEquals($live
->id(), $file1
->get('workspace')->entity
->id(), 'Expected workspace');
/** @var FileInterface $file2 */
$file2 = \Drupal::service('replication.process_file_attachment')
->process($data, 'base64_stream');
$file2
->save();
$this
->assertEquals('6f9e1f07-e713-4840-bf95-8326c8317800', $file2
->uuid(), 'The file has the expected UUID.');
$this
->assertEquals($live
->id(), $file2
->get('workspace')->entity
->id(), 'Expected workspace');
$this
->assertEquals($file1
->id(), $file2
->id(), 'The two files have the same id.');
file_unmanaged_delete($file2
->getFileUri());
$this
->assertFalse(is_file($file2
->getFileUri()));
$this
->assertFalse(is_file($file1
->getFileUri()));
/** @var FileInterface $file3 */
$file3 = \Drupal::service('replication.process_file_attachment')
->process($data, 'base64_stream');
$file3
->save();
$this
->assertEquals('6f9e1f07-e713-4840-bf95-8326c8317800', $file3
->uuid(), 'The file has the expected UUID.');
$this
->assertEquals($live
->id(), $file3
->get('workspace')->entity
->id(), 'Expected workspace');
$this
->assertEquals($file1
->id(), $file3
->id(), 'The two files have the same id.');
$this
->assertEquals($file2
->id(), $file3
->id(), 'The two files have the same id.');
$this
->assertTrue(is_file($file3
->getFileUri()));
/** @var FileInterface $file4 */
$file4 = \Drupal::service('replication.process_file_attachment')
->process($data, 'base64_stream', $stage);
$file4
->save();
$this
->assertEquals('6f9e1f07-e713-4840-bf95-8326c8317800', $file4
->uuid(), 'The file has the expected UUID.');
$this
->assertEquals($stage
->id(), $file4
->get('workspace')->entity
->id(), 'Expected workspace');
$this
->assertNotEquals($file1
->id(), $file4
->id(), 'The files do not have the same id');
}