/**
  * Assert that message from dataSet is displayed for each items on order(s) view page on frontend
  *
  * @param GiftMessage $giftMessage
  * @param Customer $customer
  * @param OrderHistory $orderHistory
  * @param CustomerOrderView $customerOrderView
  * @param CustomerAccountLogout $customerAccountLogout
  * @param string $orderId
  * @param array $products
  * @return void
  */
 public function processAssert(GiftMessage $giftMessage, Customer $customer, OrderHistory $orderHistory, CustomerOrderView $customerOrderView, CustomerAccountLogout $customerAccountLogout, $orderId, $products = [])
 {
     $this->objectManager->create('Magento\\Customer\\Test\\TestStep\\LoginCustomerOnFrontendStep', ['customer' => $customer])->run();
     $expectedData = ['sender' => $giftMessage->getSender(), 'recipient' => $giftMessage->getRecipient(), 'message' => $giftMessage->getMessage()];
     $orderHistory->open();
     $orderHistory->getOrderHistoryBlock()->openOrderById($orderId);
     foreach ($products as $key => $product) {
         if ($giftMessage->hasData('items')) {
             $itemGiftMessage = $giftMessage->getItems()[$key];
             $expectedData = ['sender' => $itemGiftMessage->getSender(), 'recipient' => $itemGiftMessage->getRecipient(), 'message' => $itemGiftMessage->getMessage()];
         }
         \PHPUnit_Framework_Assert::assertEquals($expectedData, $customerOrderView->getGiftMessageForItemBlock()->getGiftMessage($product->getName()), 'Wrong gift message is displayed on "' . $product->getName() . '" item.');
     }
     $customerAccountLogout->open();
 }
 /**
  * Assert that message from dataset is displayed on order(s) view page on backend.
  *
  * @param GiftMessage $giftMessage
  * @param SalesOrderView $salesOrderView
  * @param OrderIndex $orderIndex
  * @param FixtureFactory $fixtureFactory
  * @param array $products
  * @param string $orderId
  * @return void
  */
 public function processAssert(GiftMessage $giftMessage, SalesOrderView $salesOrderView, OrderIndex $orderIndex, FixtureFactory $fixtureFactory, array $products, $orderId)
 {
     $expectedData = [];
     $actualData = [];
     $orderIndex->open()->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]);
     if ($giftMessage->getAllowGiftMessagesForOrder() === 'Yes') {
         $formData = ['sender' => $giftMessage->getSender(), 'recipient' => $giftMessage->getRecipient(), 'message' => $giftMessage->getMessage()];
         $giftMessageForm = $fixtureFactory->createByCode('giftMessage', ['data' => $formData]);
         $expectedData[] = $giftMessageForm->getData();
         $actualData[] = $salesOrderView->getGiftOptionsBlock()->getData($giftMessageForm);
     }
     if ($giftMessage->getAllowGiftOptionsForItems() === 'Yes') {
         foreach ($giftMessage->getItems() as $key => $giftMessageItem) {
             $expectedData[] = $giftMessageItem->getData();
             $product = $products[$key];
             $actualData[] = $salesOrderView->getGiftItemsBlock()->getItemProduct($product)->getGiftMessageFormData($giftMessage);
         }
     }
     $errors = $this->verifyData($expectedData, $actualData);
     \PHPUnit_Framework_Assert::assertEmpty($errors, $errors);
 }
Example #3
0
 /**
  * Fill order items gift messages.
  *
  * @param array $products
  * @param GiftMessage $giftMessage
  */
 public function fillGiftMessageForItems(array $products, GiftMessage $giftMessage)
 {
     // Click on rootElement to solve overlapping inner elements by header menu.
     $this->_rootElement->click();
     /** @var \Magento\GiftMessage\Test\Block\Adminhtml\Order\Create\Items $items */
     $items = $this->blockFactory->create('Magento\\GiftMessage\\Test\\Block\\Adminhtml\\Order\\Create\\Items', ['element' => $this->_rootElement->find($this->itemsBlock)]);
     foreach ($giftMessage->getItems() as $key => $giftMessageItem) {
         $product = $products[$key];
         $items->getItemProduct($product)->fillGiftMessageForm($giftMessageItem);
     }
 }