/** * 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()]; }
/** * Create shipping for order on backend. * * @return array */ public function run() { $this->orderIndex->open(); $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); $this->salesOrderView->getPageActions()->ship(); if (!empty($this->data)) { $this->orderShipmentNew->getFormBlock()->fillData($this->data, $this->order->getEntityId()['products']); } $this->orderShipmentNew->getFormBlock()->submit(); return ['shipmentIds' => $this->getShipmentIds()]; }
/** * Create credit memo from order on backend. * * @return array */ public function run() { $this->orderIndex->open(); $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); $this->salesOrderView->getPageActions()->orderCreditMemo(); if (!empty($this->data)) { $this->orderCreditMemoNew->getFormBlock()->fillProductData($this->data, $this->order->getEntityId()['products']); $this->orderCreditMemoNew->getFormBlock()->updateQty(); $this->orderCreditMemoNew->getFormBlock()->fillFormData($this->data); } $this->orderCreditMemoNew->getFormBlock()->submit(); return ['creditMemoIds' => $this->getCreditMemoIds()]; }
/** * 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)); }
/** * Create invoice (with shipment optionally) for order on backend. * * @return array */ public function run() { $this->orderIndex->open(); $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); $this->salesOrderView->getPageActions()->invoice(); if (!empty($this->data)) { $this->orderInvoiceNew->getFormBlock()->fillData($this->data, $this->order->getEntityId()['products']); $this->orderInvoiceNew->getFormBlock()->updateQty(); } $this->orderInvoiceNew->getFormBlock()->submit(); $invoiceIds = $this->getInvoiceIds(); if (!empty($this->data)) { $shipmentIds = $this->getShipmentIds(); } return ['invoiceIds' => $invoiceIds, 'shipmentIds' => isset($shipmentIds) ? $shipmentIds : null]; }
/** * Create credit memo. * * @return array */ public function run() { $this->orderIndex->open(); $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Invoices\Grid $invoicesGrid */ $invoicesGrid = $this->salesOrderView->getOrderForm()->getTab('invoices')->getGridBlock(); $this->salesOrderView->getOrderForm()->openTab('invoices'); $invoicesGrid->viewInvoice(); $this->salesOrderView->getPageActions()->orderInvoiceCreditMemo(); if (!empty($this->refundData)) { $this->orderCreditMemoNew->getFormBlock()->fillProductData($this->refundData, $this->order->getEntityId()['products']); $this->orderCreditMemoNew->getFormBlock()->updateQty(); } $this->orderCreditMemoNew->getFormBlock()->submit(); return ['ids' => ['creditMemoIds' => $this->getCreditMemoIds()]]; }
/** * 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 specified prices are actual on order, invoice and refund pages. * * @param array $prices * @param InjectableFixture $product * @param OrderIndex $orderIndex * @param SalesOrderView $salesOrderView * @param OrderInvoiceNew $orderInvoiceNew * @param OrderCreditMemoNew $orderCreditMemoNew * @return void */ public function processAssert(array $prices, InjectableFixture $product, OrderIndex $orderIndex, SalesOrderView $salesOrderView, OrderInvoiceNew $orderInvoiceNew, OrderCreditMemoNew $orderCreditMemoNew) { $this->salesOrderView = $salesOrderView; $this->orderInvoiceNew = $orderInvoiceNew; $this->orderCreditMemoNew = $orderCreditMemoNew; $orderIndex->open(); $orderIndex->getSalesOrderGrid()->openFirstRow(); //Check prices on order page $actualPrices = []; $actualPrices = $this->getOrderPrices($actualPrices, $product); $actualPrices = $this->getOrderTotals($actualPrices); $prices = $this->preparePrices($prices); $message = 'Prices on order view page should be equal to defined in dataset.'; \PHPUnit_Framework_Assert::assertEquals($prices, array_filter($actualPrices), $message); $salesOrderView->getPageActions()->invoice(); //Check prices on invoice creation page $actualPrices = []; $actualPrices = $this->getInvoiceNewPrices($actualPrices, $product); $actualPrices = $this->getInvoiceNewTotals($actualPrices); $message = 'Prices on invoice new page should be equal to defined in dataset.'; \PHPUnit_Framework_Assert::assertEquals($prices, array_filter($actualPrices), $message); $orderInvoiceNew->getTotalsBlock()->submit(); //Check prices after invoice on order page $actualPrices = []; $actualPrices = $this->getOrderPrices($actualPrices, $product); $actualPrices = $this->getOrderTotals($actualPrices); $message = 'Prices on invoice page should be equal to defined in dataset.'; \PHPUnit_Framework_Assert::assertEquals($prices, array_filter($actualPrices), $message); $salesOrderView->getPageActions()->orderCreditMemo(); //Check prices on credit memo creation page $actualPrices = []; $actualPrices = $this->getCreditMemoNewPrices($actualPrices, $product); $actualPrices = $this->getCreditMemoNewTotals($actualPrices); $message = 'Prices on credit memo new page should be equal to defined in dataset.'; \PHPUnit_Framework_Assert::assertEquals(array_diff_key($prices, ['shipping_excl_tax' => null, 'shipping_incl_tax' => null]), array_filter($actualPrices), $message); $orderCreditMemoNew->getFormBlock()->submit(); //Check prices after refund on order page $actualPrices = []; $actualPrices = $this->getOrderPrices($actualPrices, $product); $actualPrices = $this->getOrderTotals($actualPrices); $message = 'Prices on credit memo page should be equal to defined in dataset.'; \PHPUnit_Framework_Assert::assertEquals($prices, array_filter($actualPrices), $message); }
/** * 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.'); }
/** * 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(); }
/** * 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.'); }
/** * Click reorder * * @return void */ public function run() { $this->salesOrderView->getPageActions()->reorder(); }