You are here

public function ProcessFileAttachmentTest::testProcessFileAttachment in Replication 8

Same name and namespace in other branches
  1. 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\Functional

Code

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