/** * 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); }
/** * 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); } }