You are here

public function SetStatusTest::testSubmitConfigurationForm in Payment 8.2

@covers ::submitConfigurationForm @covers ::getPluginSelector

@depends testBuildConfigurationForm

File

tests/src/Unit/Plugin/Action/SetStatusTest.php, line 177

Class

SetStatusTest
@coversDefaultClass \Drupal\payment\Plugin\Action\SetStatus

Namespace

Drupal\Tests\payment\Unit\Plugin\Action

Code

public function testSubmitConfigurationForm() {
  $form = [
    'payment_status_plugin_id' => [
      '#foo' => $this
        ->randomMachineName(),
    ],
  ];
  $form_state = new FormState();
  $plugin_id = $this
    ->randomMachineName();
  $payment_status = $this
    ->createMock(PaymentStatusInterface::class);
  $payment_status
    ->expects($this
    ->atLeastOnce())
    ->method('getPluginId')
    ->willReturn($plugin_id);
  $plugin_selector = $this
    ->createMock(PluginSelectorInterface::class);
  $plugin_selector
    ->expects($this
    ->once())
    ->method('getSelectedPlugin')
    ->willReturn($payment_status);
  $plugin_selector
    ->expects($this
    ->once())
    ->method('submitSelectorForm')
    ->with($form['payment_status_plugin_id'], $form_state);
  $this->pluginSelectorManager
    ->expects($this
    ->atLeastOnce())
    ->method('createInstance')
    ->willReturn($plugin_selector);
  $this->sut
    ->submitConfigurationForm($form, $form_state);
  $configuration = $this->sut
    ->getConfiguration();
  $this
    ->assertSame($plugin_id, $configuration['payment_status_plugin_id']);
}