Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertProductReviewInGrid.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Review\Test\Page\Adminhtml\ReviewIndex;
11 use Magento\Mtf\Constraint\AbstractConstraint;
12 use Magento\Mtf\Fixture\FixtureInterface;
13 
17 class AssertProductReviewInGrid extends AbstractConstraint
18 {
24  public $filter = [
25  'review_id',
26  'status' => 'status_id',
27  'title',
28  'nickname',
29  'detail',
30  'visible_in' => 'select_stores',
31  'type',
32  'name',
33  'sku',
34  ];
35 
45  public function processAssert(
46  ReviewIndex $reviewIndex,
47  Review $review,
48  FixtureInterface $product,
49  $gridStatus = ''
50  ) {
51  $filter = $this->prepareFilter($product, $review->getData(), $gridStatus);
52 
53  $reviewIndex->open();
54  $reviewIndex->getReviewGrid()->search($filter);
55  unset($filter['visible_in']);
56  \PHPUnit\Framework\Assert::assertTrue(
57  $reviewIndex->getReviewGrid()->isRowVisible($filter, false),
58  'Review is absent in Review grid.'
59  );
60  }
61 
72  public function prepareFilter(FixtureInterface $product, array $review, $gridStatus = '')
73  {
74  $filter = [];
75  foreach ($this->filter as $key => $item) {
76  list($type, $param) = [$key, $item];
77  if (is_numeric($key)) {
78  $type = $param = $item;
79  }
80  switch ($param) {
81  case 'name':
82  case 'sku':
83  $value = $product->getData($param);
84  break;
85  case 'select_stores':
86  $value = isset($review[$param]) ? $review[$param][0] : null;
87  break;
88  case 'status_id':
89  $value = $gridStatus != '' ? $gridStatus : (isset($review[$param]) ? $review[$param] : null);
90  break;
91  case 'type':
92  $value = isset($review[$param]) ? $review[$param] : 'Administrator';
93  break;
94  default:
95  $value = isset($review[$param]) ? $review[$param] : null;
96  break;
97  }
98  if ($value !== null) {
99  $filter += [$type => $value];
100  }
101  }
102  return $filter;
103  }
104 
110  public function toString()
111  {
112  return 'Review is present in grid on product reviews tab.';
113  }
114 }
$type
Definition: item.phtml:13
processAssert(ReviewIndex $reviewIndex, Review $review, FixtureInterface $product, $gridStatus='')
$value
Definition: gender.phtml:16
prepareFilter(FixtureInterface $product, array $review, $gridStatus='')