/**
  * Apply gift card before one page checkout.
  *
  * @return void
  */
 public function run()
 {
     foreach ($this->giftCardAccounts as $giftCardAccount) {
         if ($giftCardAccount !== null) {
             $this->checkoutCart->getGiftCardAccountBlock()->addGiftCard($giftCardAccount->getCode());
         }
     }
 }
 /**
  * Assert that gift card usable in frontend.
  *
  * @param CatalogProductView $catalogProductView
  * @param CheckoutCart $checkoutCart
  * @param CatalogProductSimple $product
  * @param Browser $browser
  * @param string $code
  * @return void
  */
 public function processAssert(CatalogProductView $catalogProductView, CheckoutCart $checkoutCart, CatalogProductSimple $product, Browser $browser, $code)
 {
     $this->checkoutCart = $checkoutCart;
     $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html');
     $catalogProductView->getViewBlock()->clickAddToCart();
     $checkoutCart->getGiftCardAccountBlock()->addGiftCard($code);
     $this->assert();
 }
 /**
  * Assert that created gift card account can be verified on the frontend in Shopping Cart.
  *
  * @param Customer $customer
  * @param Browser $browser
  * @param CatalogProductSimple $product
  * @param CatalogProductView $catalogProductView
  * @param GiftCardAccount $giftCardAccount
  * @param CheckoutCart $checkoutCart
  * @param string $code
  * @return void
  */
 public function processAssert(Customer $customer, Browser $browser, CatalogProductSimple $product, CatalogProductView $catalogProductView, GiftCardAccount $giftCardAccount, CheckoutCart $checkoutCart, $code)
 {
     $this->objectManager->create('Mage\\Customer\\Test\\TestStep\\LoginCustomerOnFrontendStep', ['customer' => $customer])->run();
     $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html');
     $catalogProductView->getViewBlock()->clickAddToCart();
     $data = $giftCardAccount->getData();
     $checkoutCart->getGiftCardAccountBlock()->checkStatusAndBalance($code);
     $fixtureData = ['code' => $code, 'balance' => $data['balance'], 'date_expires' => $data['date_expires']];
     \PHPUnit_Framework_Assert::assertEquals($fixtureData, $checkoutCart->getCheckBlock()->getGiftCardAccountData($fixtureData));
 }
 /**
  * Add GiftCard in ShoppingCart.
  *
  * @param Customer $customerFixture
  * @param GiftCardAccount $giftCardAccount
  * @param BrowserInterface $browser
  * @param string $product
  * @param string|null $customer
  * @return array
  */
 public function test(Customer $customerFixture, GiftCardAccount $giftCardAccount, BrowserInterface $browser, $product, $customer = null)
 {
     // Preconditions
     $product = $this->createProduct($product);
     // Steps
     if ($customer !== null) {
         $this->loginCustomer($customerFixture);
     }
     $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html');
     $this->catalogProductView->getViewBlock()->addToCart($product);
     $this->checkoutCart->getGiftCardAccountBlock()->addGiftCard($giftCardAccount->getCode());
     return ['giftCardAccount' => $giftCardAccount];
 }