You are here

public function PaymentLineItemsInputTest::testLineItemExists in Payment 8.2

@covers ::lineItemExists

@depends testGetLineItems

File

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

Class

PaymentLineItemsInputTest
@coversDefaultClass \Drupal\payment\Element\PaymentLineItemsInput

Namespace

Drupal\Tests\payment\Unit\Element

Code

public function testLineItemExists() {
  $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_exists = new \ReflectionMethod($this->sut, 'lineItemExists');
  $method_exists
    ->setAccessible(TRUE);
  $method_set
    ->invoke($this->sut, $element, $form_state, $line_items);
  $this
    ->assertTrue($method_exists
    ->invoke($this->sut, $element, $form_state, $line_item_name_a));
  $this
    ->assertTrue($method_exists
    ->invoke($this->sut, $element, $form_state, $line_item_name_b));
  $this
    ->assertFalse($method_exists
    ->invoke($this->sut, $element, $form_state, $this
    ->randomMachineName()));
}