/** * 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') { $config = $fixtureFactory->createByCode('configData', ['dataset' => 'checkmo_custom_new_order_status', 'data' => ['payment/checkmo/order_status' => ['value' => $orderStatusInitial->getStatus()]]]); $config->persist(); $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()]; }