Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertRefundInCommentsHistory.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Mtf\Constraint\AbstractConstraint;
11 use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
12 use Magento\Sales\Test\Page\Adminhtml\SalesOrderView;
13 
17 class AssertRefundInCommentsHistory extends AbstractConstraint
18 {
22  const REFUNDED_AMOUNT_PATTERN = '/^We refunded .+?%s online. Transaction ID: "[\w\-]*"/';
23 
33  public function processAssert(
34  OrderInjectable $order,
35  SalesOrderView $salesOrderView,
36  OrderIndex $salesOrder,
37  $orderId
38  ) {
39  $salesOrder->open();
40  $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]);
41 
43  $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info');
44  $comments = $infoTab->getCommentsHistoryBlock()->getComments();
45 
46  foreach ($comments as $key => $comment) {
47  if (stristr($comment['comment'], 'refunded') === false) {
48  unset($comments[$key]);
49  }
50  }
51  $comments = array_reverse(array_values($comments));
52 
53  $refundedPrices = $order->getPrice()['refund'];
54  foreach ($refundedPrices as $key => $refundedPrice) {
55  \PHPUnit\Framework\Assert::assertRegExp(
56  sprintf(self::REFUNDED_AMOUNT_PATTERN, $refundedPrice['grand_creditmemo_total']),
57  $comments[$key]['comment'],
58  'Incorrect refunded amount value for the order #' . $orderId
59  );
60  }
61  }
62 
68  public function toString()
69  {
70  return "Message about refunded amount is available in Comments History section.";
71  }
72 }
$order
Definition: order.php:55