You are here

public function ContentEntityTest::testFileSource in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/ContentEntityTest.php \Drupal\Tests\migrate_drupal\Kernel\Plugin\migrate\source\ContentEntityTest::testFileSource()
  2. 9 core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/ContentEntityTest.php \Drupal\Tests\migrate_drupal\Kernel\Plugin\migrate\source\ContentEntityTest::testFileSource()

Tests file source plugin.

@dataProvider migrationConfigurationProvider

File

core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/ContentEntityTest.php, line 249

Class

ContentEntityTest
Tests the entity content source plugin.

Namespace

Drupal\Tests\migrate_drupal\Kernel\Plugin\migrate\source

Code

public function testFileSource(array $configuration) {
  $file = File::create([
    'filename' => 'foo.txt',
    'uid' => $this->user
      ->id(),
    'uri' => 'public://foo.txt',
  ]);
  $file
    ->save();
  $migration = $this->migrationPluginManager
    ->createStubMigration($this
    ->migrationDefinition('content_entity:file', $configuration));
  $file_source = $migration
    ->getSourcePlugin();
  $this
    ->assertSame('files', $file_source
    ->__toString());
  if (!$configuration['include_translations']) {
    $this
      ->assertEquals(1, $file_source
      ->count());
  }
  $this
    ->assertIds($file_source, $configuration);
  $fields = $file_source
    ->fields();
  $this
    ->assertArrayHasKey('fid', $fields);
  $this
    ->assertArrayHasKey('filemime', $fields);
  $this
    ->assertArrayHasKey('filename', $fields);
  $this
    ->assertArrayHasKey('uid', $fields);
  $this
    ->assertArrayHasKey('uri', $fields);
  $file_source
    ->rewind();
  $values = $file_source
    ->current()
    ->getSource();
  $this
    ->assertEquals('text/plain', $values['filemime'][0]['value']);
  $this
    ->assertEquals('public://foo.txt', $values['uri'][0]['value']);
  $this
    ->assertEquals('foo.txt', $values['filename'][0]['value']);
  $this
    ->assertEquals(1, $values['fid']);
}