Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CreateShipmentStep.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
11 use Magento\Sales\Test\Page\Adminhtml\SalesOrderView;
12 use Magento\Shipping\Test\Page\Adminhtml\OrderShipmentNew;
13 use Magento\Shipping\Test\Page\Adminhtml\OrderShipmentView;
14 use Magento\Mtf\TestStep\TestStepInterface;
15 
19 class CreateShipmentStep implements TestStepInterface
20 {
24  const COLUMN_NAME = 'Shipment';
25 
31  protected $orderIndex;
32 
38  protected $salesOrderView;
39 
45  protected $orderShipmentNew;
46 
52  protected $orderShipmentView;
53 
59  protected $order;
60 
66  protected $data;
67 
77  public function __construct(
78  OrderIndex $orderIndex,
79  SalesOrderView $salesOrderView,
80  OrderShipmentNew $orderShipmentNew,
81  OrderShipmentView $orderShipmentView,
82  OrderInjectable $order,
83  $data = null
84  ) {
85  $this->orderIndex = $orderIndex;
86  $this->salesOrderView = $salesOrderView;
87  $this->orderShipmentNew = $orderShipmentNew;
88  $this->orderShipmentView = $orderShipmentView;
89  $this->order = $order;
90  $this->data = $data;
91  }
92 
98  public function run()
99  {
100  $this->orderIndex->open();
101  $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]);
102  $shipmentIds = [];
107  if ($this->salesOrderView->getPageActions()->canShip()) {
108  $this->salesOrderView->getPageActions()->ship();
109  if (!empty($this->data)) {
110  $this->orderShipmentNew->getFormBlock()->fillData($this->data, $this->order->getEntityId()['products']);
111  }
112  $this->orderShipmentNew->getFormBlock()->submit();
113  $shipmentIds = $this->getShipmentIds();
114  }
115 
116  return ['shipmentIds' => $shipmentIds];
117  }
118 
124  public function getShipmentIds()
125  {
126  $this->salesOrderView->getOrderForm()->openTab('shipments');
127  $this->salesOrderView->getOrderForm()->getTab('shipments')->getGridBlock()->resetFilter();
128  $shipmentIds = $this->salesOrderView->getOrderForm()->getTab('shipments')->getGridBlock()->getAllIds();
129  $incrementIds = [];
130  foreach ($shipmentIds as $shipmentId) {
131  $incrementIds[] = $this->salesOrderView->getOrderForm()
132  ->getTab('shipments')
133  ->getGridBlock()
134  ->getColumnValue($shipmentId, self::COLUMN_NAME);
135  }
136  return $incrementIds;
137  }
138 }
__construct(OrderIndex $orderIndex, SalesOrderView $salesOrderView, OrderShipmentNew $orderShipmentNew, OrderShipmentView $orderShipmentView, OrderInjectable $order, $data=null)