Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DeleteCreditCardFromMyAccountStep.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\Customer\Test\Page\CustomerAccountIndex;
10 use Magento\Mtf\ObjectManager;
11 use Magento\Mtf\TestStep\TestStepInterface;
12 use Magento\Payment\Test\Fixture\CreditCard;
14 use Magento\Vault\Test\Page\StoredPaymentMethods;
15 
21 class DeleteCreditCardFromMyAccountStep implements TestStepInterface
22 {
28  private $customer;
29 
35  private $objectManager;
36 
42  private $customerAccountIndex;
43 
49  private $creditCard;
50 
56  private $assertStoredPaymentDeletedMessage;
57 
63  private $storedPaymentMethodsPage;
64 
73  public function __construct(
74  StoredPaymentMethods $storedPaymentMethodsPage,
75  Customer $customer,
76  ObjectManager $objectManager,
77  CustomerAccountIndex $customerAccountIndex,
78  AssertStoredPaymentDeletedMessage $assertStoredPaymentDeletedMessage,
79  CreditCard $creditCard
80  ) {
81  $this->storedPaymentMethodsPage = $storedPaymentMethodsPage;
82  $this->customer = $customer;
83  $this->objectManager = $objectManager;
84  $this->customerAccountIndex = $customerAccountIndex;
85  $this->assertStoredPaymentDeletedMessage = $assertStoredPaymentDeletedMessage;
86  $this->creditCard = $creditCard;
87  }
88 
94  public function run()
95  {
96  $this->objectManager->create(
97  \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class,
98  ['customer' => $this->customer]
99  )->run();
100  $this->customerAccountIndex->getAccountMenuBlock()->openMenuItem('Stored Payment Methods');
101  $storedPaymentsBlock = $this->storedPaymentMethodsPage->getStoredPaymentsBlock();
102 
103  $creditCardData = $this->creditCard->getData();
104  $creditCardNumber = preg_grep('/([a-z]+)_number/', array_flip($creditCardData));
105  $lastFourDigits = substr(key($creditCardNumber), -4, 4);
106 
107  $availableCreditCards = $storedPaymentsBlock->getCreditCards();
108  if (key_exists($lastFourDigits, $availableCreditCards)) {
109  $storedPaymentsBlock->deleteCreditCard($availableCreditCards[$lastFourDigits]);
110  }
111  $this->assertStoredPaymentDeletedMessage->processAssert($this->storedPaymentMethodsPage);
112 
113  return ['deletedCreditCard' => $lastFourDigits];
114  }
115 }
$objectManager
Definition: bootstrap.php:17
$customer
Definition: customers.php:11
__construct(StoredPaymentMethods $storedPaymentMethodsPage, Customer $customer, ObjectManager $objectManager, CustomerAccountIndex $customerAccountIndex, AssertStoredPaymentDeletedMessage $assertStoredPaymentDeletedMessage, CreditCard $creditCard)