View source
<?php
namespace Drupal\Tests\paragraphs\Unit\migrate;
use Drupal\migrate\MigrateSkipRowException;
use Drupal\paragraphs\Plugin\migrate\process\FieldCollectionFieldInstanceSettings;
class FieldCollectionsFieldInstanceSettingsTest extends ProcessTestCase {
protected function setUp() : void {
parent::setUp();
$this->plugin = new FieldCollectionFieldInstanceSettings([], 'field_collection_field_instance_settings', [], $this->entityTypeBundleInfo);
}
public function testFieldCollectionInstanceFieldSettings(array $source, array $expected) {
$this->row
->expects($this
->any())
->method('getSourceProperty')
->willReturnMap([
[
'type',
'field_collection',
],
[
'field_name',
'field_field_collection_bundle_one',
],
]);
$value = $this->plugin
->transform($source, $this->migrateExecutable, $this->row, 'settings');
$this
->assertEquals($expected, $value);
}
public function testFieldCollectionBadBundle() {
$this->row
->expects($this
->any())
->method('getSourceProperty')
->willReturnMap([
[
'type',
'field_collection',
],
[
'bundle',
'non_existent_bundle',
],
]);
$this
->expectException(MigrateSkipRowException::class);
$this
->expectExceptionMessage("No target paragraph bundle found for field_collection");
$this->plugin
->transform([], $this->migrateExecutable, $this->row, 'settings');
}
public function getData() {
$data = [
'With no data' => [
'source_data' => [],
'expected_results' => [
'handler_settings' => [
'negate' => 0,
'target_bundles' => [
'field_collection_bundle_one' => 'field_collection_bundle_one',
],
'target_bundles_drag_drop' => [
'field_collection_bundle_one' => [
'enabled' => TRUE,
'weight' => 1,
],
'paragraph_bundle_one' => [
'enabled' => FALSE,
'weight' => 2,
],
'paragraph_bundle_two' => [
'enabled' => FALSE,
'weight' => 3,
],
'field_collection_bundle_two' => [
'enabled' => FALSE,
'weight' => 4,
],
'prexisting_bundle_one' => [
'enabled' => FALSE,
'weight' => 5,
],
'prexisting_bundle_two' => [
'enabled' => FALSE,
'weight' => 6,
],
],
],
],
],
];
return $data;
}
}