Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertProductReviewNotInGrid.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 
18 class AssertProductReviewNotInGrid extends AbstractConstraint
19 {
25  public $filter = [
26  'review_id',
27  'status' => 'status_id',
28  'title',
29  'nickname',
30  'detail',
31  'visible_in' => 'select_stores',
32  'type',
33  'name',
34  'sku',
35  ];
36 
46  public function processAssert(
47  ReviewIndex $reviewIndex,
48  Review $review,
49  $gridStatus = '',
50  Review $reviewInitial = null
51  ) {
52  $product = $reviewInitial === null
53  ? $review->getDataFieldConfig('entity_id')['source']->getEntity()
54  : $reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity();
55  $filter = $this->prepareFilter($product, $review, $gridStatus);
56 
57  $reviewIndex->getReviewGrid()->search($filter);
58  unset($filter['visible_in']);
59  \PHPUnit\Framework\Assert::assertFalse(
60  $reviewIndex->getReviewGrid()->isRowVisible($filter, false),
61  'Review available in grid'
62  );
63  }
64 
73  public function prepareFilter(FixtureInterface $product, Review $review, $gridStatus)
74  {
75  $filter = [];
76  foreach ($this->filter as $key => $item) {
77  list($type, $param) = [$key, $item];
78  if (is_numeric($key)) {
79  $type = $param = $item;
80  }
81  switch ($param) {
82  case 'name':
83  case 'sku':
84  $value = $product->getData($param);
85  break;
86  case 'select_stores':
87  $value = $review->getData($param)[0];
88  break;
89  case 'status_id':
90  $value = $gridStatus != '' ? $gridStatus : $review->getData($param);
91  break;
92  default:
93  $value = $review->getData($param);
94  break;
95  }
96  if ($value !== null) {
97  $filter += [$type => $value];
98  }
99  }
100  return $filter;
101  }
102 
108  public function toString()
109  {
110  return 'Review is absent in grid on product reviews tab.';
111  }
112 }
prepareFilter(FixtureInterface $product, Review $review, $gridStatus)
$type
Definition: item.phtml:13
$value
Definition: gender.phtml:16
processAssert(ReviewIndex $reviewIndex, Review $review, $gridStatus='', Review $reviewInitial=null)