You are here

public function PluginIdTest::testGetValueOptions in Plugin 8.2

@covers ::getValueOptions @covers ::getCacheableMetadata

File

tests/src/Unit/Plugin/views/filter/PluginIdTest.php, line 164

Class

PluginIdTest
@coversDefaultClass \Drupal\plugin\Plugin\views\filter\PluginId

Namespace

Drupal\Tests\plugin\Unit\Plugin\views\filter

Code

public function testGetValueOptions() {
  $plugin_type_label = 'Foo to the bar';
  $this->pluginType
    ->getLabel()
    ->willReturn($plugin_type_label);
  $plugin_label_1 = 'Foo';
  $plugin_id_1 = 'aaa_foo';
  $plugin_id_2 = 'baz';
  $plugin_id_3 = 'qux';
  $plugin_label_4 = 'Bar';
  $plugin_id_4 = 'zzz_bar';

  // Values must be sorted naturally.
  $expected = [
    $plugin_id_4 => $plugin_label_4,
    $plugin_id_2 => $plugin_id_2,
    $plugin_id_1 => $plugin_label_1,
    $plugin_id_3 => $plugin_id_3,
  ];
  $plugin_definition_1 = $this
    ->prophesize(PluginLabelDefinitionInterface::class);
  $plugin_definition_1
    ->getId()
    ->willReturn($plugin_id_1);
  $plugin_definition_1
    ->getLabel()
    ->willReturn($plugin_label_1);
  $plugin_definition_2 = $this
    ->prophesize(PluginDefinitionInterface::class);
  $plugin_definition_2
    ->getId()
    ->willReturn($plugin_id_2);
  $plugin_definition_3 = $this
    ->prophesize(PluginDefinitionInterface::class);
  $plugin_definition_3
    ->getId()
    ->willReturn($plugin_id_3);
  $plugin_definition_4 = $this
    ->prophesize(PluginLabelDefinitionInterface::class);
  $plugin_definition_4
    ->getId()
    ->willReturn($plugin_id_4);
  $plugin_definition_4
    ->getLabel()
    ->willReturn($plugin_label_4);
  $plugin_definitions = [
    $plugin_id_1 => $plugin_definition_1,
    $plugin_id_2 => $plugin_definition_2,
    $plugin_id_3 => $plugin_definition_3,
    $plugin_id_4 => $plugin_definition_4,
  ];
  $plugin_manager = $this
    ->prophesize(PluginManagerInterface::class);
  $plugin_manager
    ->getDefinitions()
    ->willReturn($plugin_definitions);
  $this->pluginType
    ->ensureTypedPluginDefinition(Argument::any())
    ->willReturnArgument();
  $this->pluginType
    ->getPluginManager()
    ->willReturn($plugin_manager);
  $this
    ->assertSame($expected, $this->sut
    ->getValueOptions());
}