You are here

public function PaymentLineItemsInputTest::testCreateLineItemName in Payment 8.2

@covers ::createLineItemName

@depends testGetLineItems @depends testLineItemExists

File

tests/src/Unit/Element/PaymentLineItemsInputTest.php, line 351

Class

PaymentLineItemsInputTest
@coversDefaultClass \Drupal\payment\Element\PaymentLineItemsInput

Namespace

Drupal\Tests\payment\Unit\Element

Code

public function testCreateLineItemName() {
  $line_item_name_a = $this
    ->randomMachineName();
  $line_item_a = $this
    ->createMock(PaymentLineItemInterface::class);
  $line_item_a
    ->expects($this
    ->atLeastOnce())
    ->method('getName')
    ->willReturn($line_item_name_a);
  $line_item_name_b = $this
    ->randomMachineName();
  $line_item_b = $this
    ->createMock(PaymentLineItemInterface::class);
  $line_item_b
    ->expects($this
    ->atLeastOnce())
    ->method('getName')
    ->willReturn($line_item_name_b);
  $line_items = array(
    $line_item_a,
    $line_item_b,
  );
  $element = array(
    '#name' => $this
      ->randomMachineName(),
    '#parents' => array(
      $this
        ->randomMachineName(),
      $this
        ->randomMachineName(),
    ),
  );
  $form_state = new FormState();
  $method_set = new \ReflectionMethod($this->sut, 'setLineItems');
  $method_set
    ->setAccessible(TRUE);
  $method_create = new \ReflectionMethod($this->sut, 'createLineItemName');
  $method_create
    ->setAccessible(TRUE);
  $method_set
    ->invoke($this->sut, $element, $form_state, $line_items);
  $this
    ->assertSame($line_item_name_a . '1', $method_create
    ->invoke($this->sut, $element, $form_state, $line_item_name_a));
  $this
    ->assertSame($line_item_name_b . '1', $method_create
    ->invoke($this->sut, $element, $form_state, $line_item_name_b));
  $line_item_name_c = $this
    ->randomMachineName();
  $this
    ->assertSame($line_item_name_c, $method_create
    ->invoke($this->sut, $element, $form_state, $line_item_name_c));
}