You are here

public function AmountFormattingFormTest::testBuildForm in Currency 8.3

Same name in this branch
  1. 8.3 tests/src/Unit/Controller/AmountFormattingFormTest.php \Drupal\Tests\currency\Unit\Controller\AmountFormattingFormTest::testBuildForm()
  2. 8.3 tests/src/Unit/Form/AmountFormattingFormTest.php \Drupal\Tests\currency\Unit\Form\AmountFormattingFormTest::testBuildForm()

@covers ::buildForm

File

tests/src/Unit/Form/AmountFormattingFormTest.php, line 104

Class

AmountFormattingFormTest
@coversDefaultClass \Drupal\currency\Form\AmountFormattingForm

Namespace

Drupal\Tests\currency\Unit\Form

Code

public function testBuildForm() {
  $form = array();
  $form_state = $this
    ->createMock(FormStateInterface::class);
  $definitions = array(
    'foo' => array(
      'label' => $this
        ->randomMachineName(),
    ),
  );
  $plugin_id = $this
    ->randomMachineName();
  $this->currencyAmountFormatterManager
    ->expects($this
    ->once())
    ->method('getDefinitions')
    ->willReturn($definitions);
  $config = $this
    ->getMockBuilder(Config::class)
    ->disableOriginalConstructor()
    ->getMock();
  $config
    ->expects($this
    ->once())
    ->method('get')
    ->with('plugin_id')
    ->willReturn($plugin_id);
  $this->configFactory
    ->expects($this
    ->once())
    ->method('getEditable')
    ->with('currency.amount_formatting')
    ->willReturn($config);
  $this->stringTranslation
    ->expects($this
    ->any())
    ->method('translate')
    ->will($this
    ->returnArgument(0));
  $expected = array(
    '#default_value' => $plugin_id,
    '#options' => array(
      'foo' => $definitions['foo']['label'],
    ),
    '#process' => [
      [
        Radios::class,
        'processRadios',
      ],
      [
        $this->controller,
        'processPluginOptions',
      ],
    ],
    '#type' => 'radios',
  );
  $build = $this->controller
    ->buildForm($form, $form_state);
  unset($build['default_plugin_id']['#title']);
  $this
    ->assertSame($expected, $build['default_plugin_id']);
}