/**
  * 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));
 }
Ejemplo n.º 6
0
 /**
  * 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.');
 }
Ejemplo n.º 11
0
 /**
  * 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.');
 }
Ejemplo n.º 13
0
 /**
  * Click reorder
  *
  * @return void
  */
 public function run()
 {
     $this->salesOrderView->getPageActions()->reorder();
 }