public function PaymentReferenceBaseTest::testBuildRefreshButton in Payment 8.2
@covers ::buildRefreshButton
File
- tests/
src/ Unit/ Element/ PaymentReferenceBaseTest.php, line 772
Class
- PaymentReferenceBaseTest
- @coversDefaultClass \Drupal\payment\Element\PaymentReferenceBase
Namespace
Drupal\Tests\payment\Unit\ElementCode
public function testBuildRefreshButton() {
$limit_allowed_plugin_ids = [
$this
->randomMachineName(),
];
$plugin_selector_id = $this
->randomMachineName();
$plugin_selector = $this
->createMock(PluginSelectorInterface::class);
$this->pluginSelectorManager
->expects($this
->atLeastOnce())
->method('createInstance')
->with($plugin_selector_id)
->willReturn($plugin_selector);
$payment = $this
->createMock(PaymentInterface::class);
$payment
->expects($this
->atLeastOnce())
->method('createDuplicate')
->willReturnSelf();
$element = array(
'#default_value' => mt_rand(),
'container' => array(
'#id' => $this
->randomMachineName(),
),
'#limit_allowed_plugin_ids' => $limit_allowed_plugin_ids,
'#name' => $this
->randomMachineName(),
'#plugin_selector_id' => $plugin_selector_id,
'#prototype_payment' => $payment,
'#required' => (bool) mt_rand(0, 1),
);
$form_state = new FormState();
$method = new \ReflectionMethod($this->sut, 'buildRefreshButton');
$method
->setAccessible(TRUE);
$build = $method
->invoke($this->sut, $element, $form_state);
$this
->assertIsArray($build);
$this
->assertTrue(is_callable($build['#ajax']['callback']));
$this
->assertSame($build['#submit'][0][0], $this->pluginDefinition['class']);
}