You are here

private function StripeTest::verifyPaymentResult in Webform CiviCRM Integration 8.5

Verify Payment values.

1 call to StripeTest::verifyPaymentResult()
StripeTest::testSubmitContribution in tests/src/FunctionalJavascript/StripeTest.php
Test webform submission using stripe processor. Verifies the payment with 1 contribution and 2 line item amounts.

File

tests/src/FunctionalJavascript/StripeTest.php, line 133

Class

StripeTest
Tests submitting a Webform with CiviCRM: Contribution with Line Items

Namespace

Drupal\Tests\webform_civicrm\FunctionalJavascript

Code

private function verifyPaymentResult() {
  $api_result = $this->utils
    ->wf_civicrm_api('contribution', 'get', []);
  $this
    ->assertEquals(1, $api_result['count']);
  $contribution = reset($api_result['values']);
  $this
    ->assertNotEmpty($contribution['trxn_id']);
  $this
    ->assertEquals($this->webform
    ->label(), $contribution['contribution_source']);
  $this
    ->assertEquals('Donation', $contribution['financial_type']);
  $this
    ->assertEquals('59.50', $contribution['total_amount']);
  $this
    ->assertEquals('Completed', $contribution['contribution_status']);
  $this
    ->assertEquals('USD', $contribution['currency']);
  $creditCardID = $this->utils
    ->wf_civicrm_api('OptionValue', 'getvalue', [
    'return' => "value",
    'label' => "Credit Card",
    'option_group_id' => "payment_instrument",
  ]);
  $this
    ->assertEquals($creditCardID, $contribution['payment_instrument_id']);
  $lineItems = $this->utils
    ->wf_civicrm_api('line_item', 'get', [
    'sequential' => 1,
  ])['values'];
  $lineTotals = array_column($lineItems, 'line_total');
  $expectedLineTotals = [
    '10.00',
    '20.00',
    '29.50',
  ];
  $this
    ->assertEquals($expectedLineTotals, $lineTotals);
  $financialTypeIds = array_column($lineItems, 'financial_type_id');
  $expectedFTIds = [
    '1',
    '1',
    '2',
  ];
  $this
    ->assertEquals($expectedFTIds, $financialTypeIds);
  $this
    ->assertEquals($contribution['total_amount'], array_sum($lineTotals));
}