/**
  * Run Unassign Custom OrderStatus test.
  *
  * @param OrderStatus $orderStatus
  * @return void
  */
 public function test(OrderStatus $orderStatus)
 {
     // Preconditions:
     $orderStatus->persist();
     // Steps:
     $orderStatusLabel = $orderStatus->getLabel();
     $this->orderStatusIndex->open();
     $this->orderStatusIndex->getOrderStatusGrid()->searchAndUnassign(['label' => $orderStatusLabel]);
 }
 /**
  * Assert order status availability in Order Status grid
  *
  * @param OrderStatus $orderStatus
  * @param OrderStatusIndex $orderStatusIndexPage
  * @param string|null $defaultState
  * @return void
  */
 public function processAssert(OrderStatus $orderStatus, OrderStatusIndex $orderStatusIndexPage, $defaultState = null)
 {
     $orderStatusIndexPage->open();
     $orderStatusLabel = $orderStatus->getLabel();
     $filter = ['status' => $orderStatus->getStatus(), 'label' => $orderStatusLabel];
     if ($defaultState !== null) {
         $state = $this->prepareState($orderStatus->getState());
         $filter = ['label' => $defaultState, 'state' => $state];
     }
     \PHPUnit_Framework_Assert::assertTrue($orderStatusIndexPage->getOrderStatusGrid()->isRowVisible($filter, true, false), 'Order status \'' . $orderStatusLabel . '\' is absent in Order Status grid.');
 }
 /**
  * Run Update Custom OrderStatus Test.
  *
  * @param OrderStatus $orderStatusInitial
  * @param OrderStatus $orderStatus
  * @param OrderInjectable $order
  * @param FixtureFactory $fixtureFactory
  * @param string $orderExist
  * @return array
  */
 public function test(OrderStatus $orderStatusInitial, OrderStatus $orderStatus, OrderInjectable $order, FixtureFactory $fixtureFactory, $orderExist)
 {
     // Preconditions:
     $orderStatusInitial->persist();
     if ($orderExist == 'Yes') {
         $order->persist();
     }
     // Steps:
     $this->orderStatusIndex->open();
     $this->orderStatusIndex->getOrderStatusGrid()->searchAndOpen(['label' => $orderStatusInitial->getLabel()]);
     $this->orderStatusEdit->getOrderStatusForm()->fill($orderStatus);
     $this->orderStatusEdit->getFormPageActions()->save();
     // Configuring orderStatus for asserts.
     $orderStatus = $fixtureFactory->createByCode('orderStatus', ['data' => array_merge($orderStatusInitial->getData(), $orderStatus->getData())]);
     // Prepare data for tear down
     $this->orderStatus = $orderStatus;
     $this->orderStatusInitial = $orderStatusInitial;
     $this->order = $order;
     return ['orderStatus' => $orderStatus, 'status' => $orderStatus->getLabel(), 'customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer()];
 }