/**
  * @covers ::render
  */
 public function testRender()
 {
     $plugin_id = $this->randomMachineName();
     $plugin_label = $this->randomMachineName();
     $plugin_definition = ['label' => $plugin_label];
     $this->paymentTypeManager->expects($this->atLeastOnce())->method('getDefinition')->with($plugin_id)->willReturn($plugin_definition);
     $result_row = new ResultRow();
     $result_row->{$this->sut->field_alias} = $plugin_id;
     $this->assertSame($plugin_label, $this->sut->render($result_row));
 }
 /**
  * @covers ::execute
  */
 public function testExecute()
 {
     $definitions = ['foo' => ['label' => $this->randomMachineName(), 'description' => $this->randomMachineName()], 'bar' => ['label' => $this->randomMachineName()], 'payment_unavailable' => []];
     $operations_foo = ['baz' => ['title' => $this->randomMachineName()]];
     $operations_provider_foo = $this->getMock(PluginOperationsProviderInterface::class);
     $operations_provider_foo->expects($this->once())->method('getOperations')->with('foo')->willReturn($operations_foo);
     $this->paymentTypeManager->expects($this->once())->method('getDefinitions')->willReturn($definitions);
     $map = [['foo', $operations_provider_foo], ['bar', NULL]];
     $this->paymentTypeManager->expects($this->exactly(2))->method('getOperationsProvider')->willReturnMap($map);
     $this->moduleHandler->expects($this->any())->method('moduleExists')->with('field_ui')->willReturn(TRUE);
     $map = [['administer payment fields', TRUE], ['administer payment form display', TRUE], ['administer payment display', TRUE]];
     $this->currentUser->expects($this->atLeastOnce())->method('hasPermission')->willReturnMap($map);
     $build = $this->sut->execute();
     $expected_build = ['#empty' => 'There are no available payment types.', '#header' => ['Type', 'Description', 'Operations'], '#type' => 'table', 'foo' => ['label' => ['#markup' => $definitions['foo']['label']], 'description' => ['#markup' => $definitions['foo']['description']], 'operations' => ['#links' => $operations_foo + ['configure' => ['url' => new Url('payment.payment_type', ['bundle' => 'foo']), 'title' => 'Configure'], 'manage-fields' => ['title' => 'Manage fields', 'url' => new Url('entity.payment.field_ui_fields', ['bundle' => 'foo'])], 'manage-form-display' => ['title' => 'Manage form display', 'url' => new Url('entity.entity_form_display.payment.default', ['bundle' => 'foo'])], 'manage-display' => ['title' => 'Manage display', 'url' => new Url('entity.entity_view_display.payment.default', ['bundle' => 'foo'])]], '#type' => 'operations']], 'bar' => ['label' => ['#markup' => $definitions['bar']['label']], 'description' => ['#markup' => NULL], 'operations' => ['#links' => ['configure' => ['url' => new Url('payment.payment_type', ['bundle' => 'bar']), 'title' => 'Configure'], 'manage-fields' => ['title' => 'Manage fields', 'url' => new Url('entity.payment.field_ui_fields', ['bundle' => 'bar'])], 'manage-form-display' => ['title' => 'Manage form display', 'url' => new Url('entity.entity_form_display.payment.default', ['bundle' => 'bar'])], 'manage-display' => ['title' => 'Manage display', 'url' => new Url('entity.entity_view_display.payment.default', ['bundle' => 'bar'])]], '#type' => 'operations']]];
     $this->assertEquals($expected_build, $build);
 }
 /**
  * @covers ::title
  */
 public function testTitle()
 {
     $plugin_id = $this->randomMachineName();
     $label = $this->randomMachineName();
     $definition = ['label' => $label];
     $this->paymentTypeManager->expects($this->once())->method('getDefinition')->with($plugin_id)->willReturn($definition);
     $this->assertSame($label, $this->sut->title($plugin_id));
 }