Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertCardRequiredFields.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Mtf\Constraint\AbstractConstraint;
10 use Magento\Payment\Test\Repository\CreditCard;
11 use Magento\Sales\Test\Page\Adminhtml\OrderCreateIndex;
12 
18 class AssertCardRequiredFields extends AbstractConstraint
19 {
23  const REQUIRE_MESSAGE = 'This is a required field.';
24 
28  const VALID_NUMBER_MESSAGE = 'Please enter a valid number in this field.';
29 
36  public function processAssert(OrderCreateIndex $orderCreateIndex, CreditCard $creditCard)
37  {
38  $actualRequiredFields = $orderCreateIndex->getCreateBlock()->getBillingMethodBlock()
39  ->getJsErrors();
40  $creditCardEmpty = $creditCard->get('visa_empty');
41  foreach (array_keys($creditCardEmpty) as $field) {
42  \PHPUnit\Framework\Assert::assertTrue(
43  isset($actualRequiredFields[$field]),
44  "Field '$field' is not highlighted with an JS error."
45  );
46  $expected = self::REQUIRE_MESSAGE;
47  if (in_array($field, ['cc_number', 'cc_cid'])) {
48  $expected = self::VALID_NUMBER_MESSAGE;
49  }
50  \PHPUnit\Framework\Assert::assertEquals(
51  $expected,
52  $actualRequiredFields[$field],
53  "Field '$field' is not highlighted as required."
54  );
55  }
56  }
57 
63  public function toString()
64  {
65  return 'All required fields on customer form are highlighted.';
66  }
67 }
processAssert(OrderCreateIndex $orderCreateIndex, CreditCard $creditCard)