Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssignCustomOrderStatusTest.php
Go to the documentation of this file.
1 <?php
8 
11 use Magento\Sales\Test\Fixture\OrderStatus;
12 use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
13 use Magento\Sales\Test\Page\Adminhtml\OrderStatusAssign;
14 use Magento\Sales\Test\Page\Adminhtml\OrderStatusIndex;
15 use Magento\Mtf\Fixture\FixtureFactory;
16 use Magento\Mtf\TestCase\Injectable;
17 
36 class AssignCustomOrderStatusTest extends Injectable
37 {
38  /* tags */
39  const MVP = 'yes';
40  /* end tags */
41 
47  protected $orderStatusIndex;
48 
54  protected $orderStatusAssign;
55 
61  protected $orderIndex;
62 
68  protected $orderStatus;
69 
75  protected $order;
76 
82  protected $fixtureFactory;
83 
90  public function __prepare(FixtureFactory $fixtureFactory)
91  {
92  $this->fixtureFactory = $fixtureFactory;
93  }
94 
103  public function __inject(
104  OrderStatusIndex $orderStatusIndex,
105  OrderStatusAssign $orderStatusAssign,
106  OrderIndex $orderIndex
107  ) {
108  $this->orderStatusIndex = $orderStatusIndex;
109  $this->orderStatusAssign = $orderStatusAssign;
110  $this->orderIndex = $orderIndex;
111  }
112 
122  public function test(
123  OrderStatus $orderStatus,
124  OrderInjectable $order,
125  array $orderStatusState,
127  ) {
128  // Preconditions:
129  $orderStatus->persist();
131  $orderStatus = $this->fixtureFactory->createByCode(
132  'orderStatus',
133  ['data' => array_merge($orderStatus->getData(), $orderStatusState)]
134  );
135  $this->orderStatus = $orderStatus;
136 
137  // Steps:
138  $this->orderStatusIndex->open();
139  $this->orderStatusIndex->getGridPageActions()->assignStatusToState();
140  $this->orderStatusAssign->getAssignForm()->fill($orderStatus);
141  $this->orderStatusAssign->getPageActionsBlock()->save();
142  $assertion->processAssert($this->orderStatusIndex);
143 
144  // Prepare data for constraints
145  $config = $this->fixtureFactory->createByCode('configData', [
146  'dataset' => 'checkmo_custom_new_order_status',
147  'data' => ['payment/checkmo/order_status' => ['value' => $orderStatus->getStatus()]]
148  ]);
149  $config->persist();
150  $order->persist();
151  $this->order = $order;
152 
153  return [
154  'orderId' => $order->getId(),
155  'customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer(),
156  'status' => $orderStatus->getLabel()
157  ];
158  }
159 
165  public function tearDown()
166  {
167  if ($this->order) {
168  $this->orderIndex->open()->getSalesOrderGrid()->massaction([['id' => $this->order->getId()]], 'Cancel');
169  }
170  if ($this->orderStatus) {
171  $filter = ['label' => $this->orderStatus->getLabel()];
172  $this->orderStatusIndex->open()->getOrderStatusGrid()->searchAndUnassign($filter);
173  $this->orderStatusIndex->getMessagesBlock()->waitSuccessMessage();
174  $this->objectManager->create(
175  \Magento\Config\Test\TestStep\SetupConfigurationStep::class,
176  ['configData' => 'checkmo_custom_new_order_status_rollback']
177  )->run();
178  }
179  }
180 }
__inject(OrderStatusIndex $orderStatusIndex, OrderStatusAssign $orderStatusAssign, OrderIndex $orderIndex)
$config
Definition: fraud_order.php:17