PerComponentEntityFormDisplayTest.php

Namespace

Drupal\Tests\migrate\Unit\destination

File

core/modules/migrate/tests/src/Unit/destination/PerComponentEntityFormDisplayTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\migrate\Unit\destination;

use Drupal\migrate\Plugin\migrate\destination\PerComponentEntityFormDisplay;
use Drupal\migrate\Row;
use Drupal\Tests\migrate\Unit\MigrateTestCase;
use PHPUnit\Framework\Attributes\Group;

/**
 * Tests the entity display destination plugin.
 */
class PerComponentEntityFormDisplayTest extends MigrateTestCase {
  
  /**
   * Tests the entity display import method.
   */
  public function testImport() : void {
    $values = [
      'entity_type' => 'entity_type_test',
      'bundle' => 'bundle_test',
      'form_mode' => 'form_mode_test',
      'field_name' => 'field_name_test',
      'options' => [
        'test setting',
      ],
    ];
    $row = new Row();
    foreach ($values as $key => $value) {
      $row->setDestinationProperty($key, $value);
    }
    $entity = $this->getMockBuilder('Drupal\\Core\\Entity\\Entity\\EntityFormDisplay')
      ->disableOriginalConstructor()
      ->getMock();
    $entity->expects($this->once())
      ->method('setComponent')
      ->with('field_name_test', [
      'test setting',
    ])
      ->willReturnSelf();
    $entity->expects($this->once())
      ->method('save')
      ->with();
    $plugin = new TestPerComponentEntityFormDisplay($entity);
    $this->assertSame([
      'entity_type_test',
      'bundle_test',
      'form_mode_test',
      'field_name_test',
    ], $plugin->import($row));
    $this->assertSame([
      'entity_type_test',
      'bundle_test',
      'form_mode_test',
    ], $plugin->getTestValues());
  }

}

/**
 * Test class for testing per component entity form display.
 */
class TestPerComponentEntityFormDisplay extends PerComponentEntityFormDisplay {
  const MODE_NAME = 'form_mode';
  
  /**
   * The test values.
   *
   * @var string[]
   */
  protected $testValues;
  
  /**
   * The test entity.
   *
   * @var \PHPUnit\Framework\MockObject\MockObject
   */
  protected $entity;
  public function __construct($entity) {
    $this->entity = $entity;
  }
  
  /**
   * Gets the test entity.
   */
  protected function getEntity($entity_type, $bundle, $form_mode) {
    $this->testValues = func_get_args();
    return $this->entity;
  }
  
  /**
   * Gets the test values.
   */
  public function getTestValues() {
    return $this->testValues;
  }

}

Classes

Title Deprecated Summary
PerComponentEntityFormDisplayTest Tests the entity display destination plugin.
TestPerComponentEntityFormDisplay Test class for testing per component entity form display.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.