reviewer-1.2.x-dev/modules/reviewer_test_kit/tests/src/Kernel/Entity/Display/FieldNameGenerationTest.php

modules/reviewer_test_kit/tests/src/Kernel/Entity/Display/FieldNameGenerationTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\reviewer_test_kit\Kernel\Entity\Display;

use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\reviewer\Reviewer\Action;
use Drupal\reviewer_test_kit\Plugin\reviewer\Task\Entity\Display\DisplayFieldsTaskBase;
use Drupal\Tests\reviewer_test_kit\Kernel\Entity\EntityTaskBaseTestBase;
use Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Group;

/**
 * Test for field name generation on tasks.
 */
#[Group('reviewer')]
#[CoversClass(DisplayFieldsTaskBase::class)]
final class FieldNameGenerationTest extends EntityTaskBaseTestBase {

  use TaxonomyTestTrait;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'taxonomy',
  ];

  /**
   * {@inheritdoc}
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  protected function setUp(): void {
    parent::setUp();

    $this->installEntitySchema('taxonomy_term');
    $this->installConfig(['taxonomy']);

    $this->createVocabulary(['vid' => 'reviewer']);

    // Add an entity reference field to test the $fieldTypes handlers.
    $storage = FieldStorageConfig::create([
      'entity_type' => 'node',
      'field_name' => 'field_term',
      'type' => 'entity_reference',
    ]);
    $storage->save();
    FieldConfig::create([
      'field_storage' => $storage,
      'bundle' => 'reviewer',
      'label' => 'Term',
      'settings' => [
        'handler' => 'default:taxonomy_term',
        'handler_settings' => [
          'target_bundles' => [
            'reviewer',
          ],
        ],
      ],
    ])->save();
  }

  /**
   * Test field name generation from names and types.
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function testFieldNameGeneration(): void {
    $form = $this
      ->loadForm()
      ->setComponent('field_link', [
        'region' => 'content',
        'type' => 'link',
      ])
      ->setComponent('field_node', [
        'region' => 'content',
        'type' => 'entity_reference_autocomplete',
      ])
      ->setComponent('field_term', [
        'region' => 'content',
        'type' => 'entity_reference_autocomplete',
      ]);
    $form->save();

    $expected_values = [
      implode(',', array_keys($form->getComponents())),
      implode(',', array_keys($form->getComponents())),
      'field_link,field_node,field_term,uid',
      'field_node,field_term',
    ];

    $review = $this->runOneTaskReview(Action::Check, 'test_fields_review');
    $results = $review->getResults()->getIndividualResults();
    self::assertNotCount(0, $results);
    foreach (array_values($results) as $index => $result) {
      self::assertSame($expected_values[$index] ?? '', $result->getMessage());
    }

  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc