group-8.x-1.x-dev/tests/src/Unit/EntityReferenceTest.php

tests/src/Unit/EntityReferenceTest.php
<?php

namespace Drupal\Tests\group\Unit;

use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Field\FieldTypePluginManager;
use Drupal\Tests\UnitTestCase;
use Drupal\group\Plugin\Group\Relation\GroupRelationType;
use Drupal\group\Plugin\Group\RelationHandlerDefault\EntityReference;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Tests the default group relation entity_reference handler.
 *
 * @coversDefaultClass \Drupal\group\Plugin\Group\RelationHandlerDefault\EntityReference
 * @group group
 */
class EntityReferenceTest extends UnitTestCase {

  /**
   * {@inheritdoc}
   */
  public function setUp(): void {
    parent::setUp();

    $field_type_manager = $this->prophesize(FieldTypePluginManager::class);
    $field_type_manager->getDefaultStorageSettings('entity_reference')->willReturn([]);
    $field_type_manager->getDefaultFieldSettings('entity_reference')->willReturn([]);

    $container = $this->prophesize(ContainerInterface::class);
    $container->get('plugin.manager.field.field_type')->willReturn($field_type_manager->reveal());
    \Drupal::setContainer($container->reveal());
  }

  /**
   * Tests the field modifier.
   *
   * @covers ::configureField
   */
  public function testConfigureField() {
    $base_field_definition = BaseFieldDefinition::create('entity_reference');
    $group_relation_type = new GroupRelationType([
      'reference_label' => 'orange',
      'reference_description' => 'cherry',
      'entity_type_id' => 'apple',
      'entity_bundle' => 'lemon',
    ]);

    $entity_reference_handler = new EntityReference();
    $entity_reference_handler->init('foo', $group_relation_type);
    $entity_reference_handler->configureField($base_field_definition);

    $this->assertEquals($group_relation_type->getEntityReferenceLabel(), $base_field_definition->getLabel());
    $this->assertEquals($group_relation_type->getEntityReferenceDescription(), $base_field_definition->getDescription());
    $this->assertEquals($group_relation_type->getEntityTypeId(), $base_field_definition->getSetting('target_type'));
    $this->assertEquals(['target_bundles' => [$group_relation_type->getEntityBundle()]], $base_field_definition->getSetting('handler_settings'));
  }

  /**
   * Tests the field modifier.
   *
   * @covers ::configureField
   */
  public function testConfigureFieldForConfig() {
    $base_field_definition = BaseFieldDefinition::create('entity_reference');
    $group_relation_type = new GroupRelationType([
      'reference_label' => 'orange',
      'reference_description' => 'cherry',
      'entity_type_id' => 'banana',
      'config_entity_type' => TRUE,
    ]);

    $entity_reference_handler = new EntityReference();
    $entity_reference_handler->init('foo', $group_relation_type);
    $entity_reference_handler->configureField($base_field_definition);

    $this->assertEquals($group_relation_type->getEntityReferenceLabel(), $base_field_definition->getLabel());
    $this->assertEquals($group_relation_type->getEntityReferenceDescription(), $base_field_definition->getDescription());
    $this->assertEquals('group_config_wrapper', $base_field_definition->getSetting('target_type'));
    $this->assertEquals(['target_bundles' => [$group_relation_type->getEntityTypeId()]], $base_field_definition->getSetting('handler_settings'));
  }

}

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

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