/** * 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); }
/** * Assert that status is correct on order page in backend (same with value of orderStatus variable) * * @param string $status * @param string $orderId * @param OrderIndex $salesOrder * @param SalesOrderView $salesOrderView * @param string|null $statusToCheck * @return void */ public function processAssert($status, $orderId, OrderIndex $salesOrder, SalesOrderView $salesOrderView, $statusToCheck = null) { $salesOrder->open(); $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); $orderStatus = $statusToCheck == null ? $status : $statusToCheck; \PHPUnit_Framework_Assert::assertEquals($salesOrderView->getOrderForm()->getOrderInfoBlock()->getOrderStatus(), $orderStatus); }
/** * Assert that comment about authorized amount exist in Comments History section on order page in backend. * * @param SalesOrderView $salesOrderView * @param OrderIndex $salesOrder * @param string $orderId * @param array $prices * @return void */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $salesOrder, $orderId, array $prices) { $salesOrder->open(); $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); $actualAuthorizedAmount = $salesOrderView->getOrderHistoryBlock()->getCommentsHistory(); \PHPUnit_Framework_Assert::assertContains(self::AUTHORIZED_AMOUNT . $prices['grandTotal'], $actualAuthorizedAmount, 'Incorrect authorized amount value for the order #' . $orderId); }
/** * Assert that 3D Secure information is present on order page in Admin. * * @param SalesOrderView $salesOrderView * @param array $paymentInformation * @return void */ public function processAssert(SalesOrderView $salesOrderView, array $paymentInformation) { $actualPaymentInformation = $salesOrderView->getBraintreeInfoBlock()->getPaymentInfo(); foreach ($paymentInformation as $key => $value) { \PHPUnit_Framework_Assert::assertArrayHasKey($key, $actualPaymentInformation, '3D Secure information is not present.'); \PHPUnit_Framework_Assert::assertEquals($paymentInformation[$key], $value, '3D Secure information is not equal to information from data set.'); } }
/** * Fill Sales Data. * * @return array */ public function run() { $this->orderCreateIndex->getCreateBlock()->submitOrder(); $this->salesOrderView->getMessagesBlock()->waitSuccessMessage(); $orderId = trim($this->salesOrderView->getTitleBlock()->getTitle(), '#'); $order = $this->fixtureFactory->createByCode('orderInjectable', ['data' => ['id' => $orderId, 'customer_id' => ['customer' => $this->customer], 'entity_id' => ['products' => $this->products], 'billing_address_id' => ['billingAddress' => $this->billingAddress]]]); return ['orderId' => $orderId, 'order' => $order]; }
/** * Assert that comment about captured amount exist in Comments History section on order page in Admin. * * @param SalesOrderView $salesOrderView * @param OrderIndex $salesOrder * @param string $orderId * @param array $capturedPrices * @return void */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $salesOrder, $orderId, array $capturedPrices) { $salesOrder->open(); $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); $actualCapturedAmount = $salesOrderView->getOrderHistoryBlock()->getCapturedAmount(); foreach ($capturedPrices as $key => $capturedPrice) { \PHPUnit_Framework_Assert::assertContains(self::CAPTURED_AMOUNT . $capturedPrice, $actualCapturedAmount[$key], 'Incorrect captured amount value for the order #' . $orderId); } }
/** * Put created order on hold. * * @param OrderInjectable $order * @return array */ public function test(OrderInjectable $order) { // Preconditions $order->persist(); // Steps $this->orderIndex->open(); $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); $this->salesOrderView->getPageActions()->hold(); return ['customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer()]; }
/** * Get transaction id from order comments * @return mixed */ private function getTransactionId() { $comments = $this->salesOrderView->getOrderHistoryBlock()->getCommentsHistory(); $transactionId = null; preg_match('/(\\w+-*\\w+)"/', $comments, $matches); if (!empty($matches[1])) { $transactionId = $matches[1]; } return $transactionId; }
/** * Assert that shipment is present in the Shipments tab with correct shipped items quantity * * @param SalesOrderView $salesOrderView * @param OrderIndex $orderIndex * @param OrderInjectable $order * @param array $ids * @return void */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $orderIndex, OrderInjectable $order, array $ids) { $orderIndex->open(); $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); $salesOrderView->getOrderForm()->openTab('shipments'); $totalQty = $order->getTotalQtyOrdered(); $totalQty = is_array($totalQty) ? $totalQty : [$totalQty]; foreach ($ids['shipmentIds'] as $key => $shipmentId) { $filter = ['id' => $shipmentId, 'qty_from' => $totalQty[$key], 'qty_to' => $totalQty[$key]]; \PHPUnit_Framework_Assert::assertTrue($salesOrderView->getOrderForm()->getTabElement('shipments')->getGridBlock()->isRowVisible($filter), 'Shipment is absent on shipments tab.'); } }
/** * Assert that specified in data set buttons exist on order page in backend. * * @param SalesOrderView $salesOrderView * @param string $orderButtonsAvailable * @return void */ public function processAssert(SalesOrderView $salesOrderView, $orderButtonsAvailable) { $buttons = explode(',', $orderButtonsAvailable); $absentButtons = []; $actionsBlock = $salesOrderView->getPageActions(); foreach ($buttons as $button) { $button = trim($button); if (!$actionsBlock->isActionButtonVisible($button)) { $absentButtons[] = $button; } } \PHPUnit_Framework_Assert::assertEmpty($absentButtons, "Next buttons was not found on page: \n" . implode(";\n", $absentButtons)); }
/** * Assert that buttons from dataset are not present on page * * @param OrderIndex $orderIndex * @param SalesOrderView $salesOrderView * @param OrderInjectable $order * @param string $orderButtonsUnavailable * @return void */ public function processAssert(OrderIndex $orderIndex, SalesOrderView $salesOrderView, OrderInjectable $order, $orderButtonsUnavailable) { $orderIndex->open(); $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); $buttons = explode(',', $orderButtonsUnavailable); $matches = []; foreach ($buttons as $button) { if ($salesOrderView->getPageActions()->isActionButtonVisible(trim($button))) { $matches[] = $button; } } \PHPUnit_Framework_Assert::assertEmpty($matches, 'Buttons are present on order page.' . "\nLog:\n" . implode(";\n", $matches)); }
/** * Assert that refund is present in the tab with ID and refunded amount(depending on full/partial refund). * * @param SalesOrderView $salesOrderView * @param OrderIndex $orderIndex * @param OrderInjectable $order * @param array $ids * @return void */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $orderIndex, OrderInjectable $order, array $ids) { $orderIndex->open(); $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); $salesOrderView->getOrderForm()->openTab('creditmemos'); /** @var Grid $grid */ $grid = $salesOrderView->getOrderForm()->getTab('creditmemos')->getGridBlock(); $amount = $order->getPrice(); foreach ($ids['creditMemoIds'] as $key => $creditMemoId) { $filter = ['id' => $creditMemoId, 'amount_from' => $amount[$key]['grand_creditmemo_total'], 'amount_to' => $amount[$key]['grand_creditmemo_total']]; \PHPUnit_Framework_Assert::assertTrue($grid->isRowVisible($filter, true, false), 'Credit memo is absent on credit memos tab.'); } }
/** * Assert that message from dataSet is displayed on order(s) view page on backend. * * @param GiftMessage $giftMessage * @param SalesOrderView $salesOrderView * @param OrderIndex $orderIndex * @param array $products * @param string $orderId * @return void */ public function processAssert(GiftMessage $giftMessage, SalesOrderView $salesOrderView, OrderIndex $orderIndex, array $products, $orderId) { $orderIndex->open()->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); if ($giftMessage->getAllowGiftMessagesForOrder()) { $expectedData[] = $giftMessage->getData(); $actualData[] = $salesOrderView->getGiftOptionsBlock()->getData($giftMessage); } if ($giftMessage->getAllowGiftOptionsForItems()) { foreach ($products as $key => $product) { $expectedData[] = $giftMessage->getItems()[$key]->getData(); $actualData[] = $salesOrderView->getGiftItemsBlock()->getItemProduct($product)->getGiftMessageFormData($giftMessage); } } $errors = $this->verifyData($expectedData, $actualData); \PHPUnit_Framework_Assert::assertEmpty($errors, $errors); }
/** * Assert that invoice is present in the invoices tab of the order with corresponding amount(Grand Total) * * @param SalesOrderView $salesOrderView * @param OrderIndex $orderIndex * @param OrderInjectable $order * @param array $ids * @return void */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $orderIndex, OrderInjectable $order, array $ids) { $orderIndex->open(); $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); $salesOrderView->getOrderForm()->openTab('invoices'); /** @var Grid $grid */ $grid = $salesOrderView->getOrderForm()->getTabElement('invoices')->getGridBlock(); $amount = $order->getPrice(); foreach ($ids['invoiceIds'] as $key => $invoiceId) { $filter = ['id' => $invoiceId, 'amount_from' => $amount[$key]['grand_invoice_total'], 'amount_to' => $amount[$key]['grand_invoice_total']]; $grid->search($filter); $filter['amount_from'] = number_format($amount[$key]['grand_invoice_total'], 2); $filter['amount_to'] = number_format($amount[$key]['grand_invoice_total'], 2); \PHPUnit_Framework_Assert::assertTrue($grid->isRowVisible($filter, false, false), 'Invoice is absent on invoices tab.'); } }
/** * Assert that comment about authorized amount exist in Comments History section on order page in Admin. * * @param SalesOrderView $salesOrderView * @param OrderIndex $salesOrder * @param string $orderId * @param array $transactionDetails * @throws \Exception */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $salesOrder, $orderId, array $transactionDetails) { $transactionId = ''; $salesOrder->open(); $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); $comment = $salesOrderView->getOrderHistoryBlock()->getCommentsHistory(); preg_match('/(ID: ")(\\w+-*\\w+)(")/', $comment, $matches); if (!empty($matches[2])) { $transactionId = $matches[2]; } \PHPUnit_Framework_Assert::assertNotEmpty($transactionId); $orderForm = $salesOrderView->getOrderForm()->openTab('transactions'); /** @var Grid $grid */ $grid = $orderForm->getTab('transactions')->getGridBlock(); $actualTxnIds = $grid->getIds(); \PHPUnit_Framework_Assert::assertEquals($transactionDetails, $actualTxnIds[$transactionId], 'Incorrect transaction details for the order #' . $orderId); }
/** * Get order product prices. * * @param InjectableFixture $product * @param array $actualPrices * @return array */ public function getOrderPrices($actualPrices, InjectableFixture $product) { $viewBlock = $this->salesOrderView->getItemsOrderedBlock(); $actualPrices['cart_item_price_excl_tax'] = $viewBlock->getItemPriceExclTax($product->getName()); $actualPrices['cart_item_price_incl_tax'] = $viewBlock->getItemPriceInclTax($product->getName()); $actualPrices['cart_item_subtotal_excl_tax'] = $viewBlock->getItemSubExclTax($product->getName()); $actualPrices['cart_item_subtotal_incl_tax'] = $viewBlock->getItemSubInclTax($product->getName()); return $actualPrices; }
/** * Sales coupon report * * @param OrderInjectable $order * @param array $viewsReport * @return void */ public function test(OrderInjectable $order, array $viewsReport) { // Precondition $order->persist(); $this->orderIndex->open(); $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); $this->salesOrderView->getPageActions()->invoice(); $this->orderInvoiceNew->getTotalsBlock()->submit(); $this->reportStatistic->open(); $this->reportStatistic->getGridBlock()->massaction([['report' => 'Coupons']], 'Refresh Statistics for the Last Day', true); // Steps $this->salesCouponReportView->open(); $ruleName = $order->getCouponCode()->getName(); if (isset($viewsReport['rules_list'])) { $viewsReport['rules_list'] = str_replace('%rule_name%', $ruleName, $viewsReport['rules_list']); } $this->salesCouponReportView->getFilterBlock()->viewsReport($viewsReport); $this->salesCouponReportView->getActionBlock()->showReport(); }
/** * Assert that Order Grand Total is correct on order page in backend * * @param SalesOrderView $salesOrderView * @param string $orderId * @param OrderIndex $salesOrder * @param string $grandTotal * @return void */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $salesOrder, $orderId, $grandTotal) { $salesOrder->open(); $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); \PHPUnit_Framework_Assert::assertEquals($grandTotal, $salesOrderView->getOrderTotalsBlock()->getGrandTotal(), 'Grand Total price does not equal to price from data set.'); }
/** * Assert that status is correct on order page in backend (same with value of orderStatus variable) * * @param string $previousOrderStatus * @param OrderInjectable $order * @param OrderIndex $salesOrder * @param SalesOrderView $salesOrderView * @return void */ public function processAssert($previousOrderStatus, OrderInjectable $order, OrderIndex $salesOrder, SalesOrderView $salesOrderView) { $salesOrder->open(); $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); \PHPUnit_Framework_Assert::assertEquals($previousOrderStatus, $salesOrderView->getOrderForm()->getOrderInfoBlock()->getOrderStatus(), 'Order status is incorrect on order page in backend.'); }
/** * Get shipment ids. * * @return array */ protected function getShipmentIds() { $this->salesOrderView->getOrderForm()->openTab('shipments'); return $this->salesOrderView->getOrderForm()->getTab('shipments')->getGridBlock()->getIds(); }
/** * Assert that after cancel sales order successful message appears * * @param SalesOrderView $salesOrderView * @return void */ public function processAssert(SalesOrderView $salesOrderView) { \PHPUnit_Framework_Assert::assertEquals(self::SUCCESS_CANCEL_MESSAGE, $salesOrderView->getMessagesBlock()->getSuccessMessage()); }
/** * Click reorder * * @return void */ public function run() { $this->salesOrderView->getPageActions()->reorder(); }
/** * Assert that 'Unhold' button present on order page * * @param OrderIndex $orderIndex * @param SalesOrderView $salesOrderView * @param OrderInjectable $order * @return void */ public function processAssert(OrderIndex $orderIndex, SalesOrderView $salesOrderView, OrderInjectable $order) { $orderIndex->open(); $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); \PHPUnit_Framework_Assert::assertTrue($salesOrderView->getPageActions()->isActionButtonVisible('Unhold'), 'Button "Unhold" is absent on order page.'); }
/** * Assert that after create sales order successful message appears * * @param SalesOrderView $salesOrderView * @return void */ public function processAssert(SalesOrderView $salesOrderView) { \PHPUnit_Framework_Assert::assertEquals(self::SUCCESS_MESSAGE, $salesOrderView->getMessagesBlock()->getSuccessMessage(), 'Wrong success message is displayed.'); }
/** * On hold order on backend. * * @return void */ public function run() { $this->orderIndex->open(); $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); $this->salesOrderView->getPageActions()->hold(); }
/** * Get credit memo ids. * * @return array */ protected function getCreditMemoIds() { $this->salesOrderView->getOrderForm()->openTab('creditmemos'); return $this->salesOrderView->getOrderForm()->getTab('creditmemos')->getGridBlock()->getIds(); }
/** * Assert that 'Credit Memo' button is present on order's page * * @param SalesOrderView $salesOrderView * @param OrderIndex $orderIndex * @param OrderInjectable $order * @return void */ public function processAssert(SalesOrderView $salesOrderView, OrderIndex $orderIndex, OrderInjectable $order) { $orderIndex->open(); $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); \PHPUnit_Framework_Assert::assertTrue($salesOrderView->getPageActions()->isActionButtonVisible('CreditMemo'), 'Credit memo button is absent on order view page.'); }