/**
  * Prepare filter for assert
  *
  * @param FixtureInterface $product
  * @param Review $review
  * @param string $gridStatus
  * @return array
  */
 public function prepareFilter(FixtureInterface $product, Review $review, $gridStatus)
 {
     $filter = [];
     foreach ($this->filter as $key => $item) {
         list($type, $param) = [$key, $item];
         if (is_numeric($key)) {
             $type = $param = $item;
         }
         switch ($param) {
             case 'name':
             case 'sku':
                 $value = $product->getData($param);
                 break;
             case 'select_stores':
                 $value = $review->getData($param)[0];
                 break;
             case 'status_id':
                 $value = $gridStatus != '' ? $gridStatus : $review->getData($param);
                 break;
             default:
                 $value = $review->getData($param);
                 break;
         }
         if ($value !== null) {
             $filter += [$type => $value];
         }
     }
     return $filter;
 }
 /**
  * Assert that review is displayed in grid.
  *
  * @param ReviewIndex $reviewIndex
  * @param Review $review
  * @param FixtureInterface $product
  * @param string $gridStatus
  * @return void
  */
 public function processAssert(ReviewIndex $reviewIndex, Review $review, FixtureInterface $product, $gridStatus = '')
 {
     $filter = $this->prepareFilter($product, $review->getData(), $gridStatus);
     $reviewIndex->open();
     $reviewIndex->getReviewGrid()->search($filter);
     unset($filter['visible_in']);
     \PHPUnit_Framework_Assert::assertTrue($reviewIndex->getReviewGrid()->isRowVisible($filter, false), 'Review is absent in Review grid.');
 }
 /**
  * Assert that Customer review is displayed in grid
  *
  * @param ReviewIndex $reviewIndex
  * @param Review $review
  * @param AssertProductReviewInGrid $assertProductReviewInGrid
  * @param CustomerReportReview $customerReportReview
  * @param Customer $customer
  * @param CatalogProductSimple $product
  * @param string $gridStatus
  * @return void
  */
 public function processAssert(ReviewIndex $reviewIndex, Review $review, AssertProductReviewInGrid $assertProductReviewInGrid, CustomerReportReview $customerReportReview, Customer $customer, CatalogProductSimple $product = null, $gridStatus = '')
 {
     $filter = $assertProductReviewInGrid->prepareFilter($product, $review->getData(), $gridStatus);
     $customerReportReview->open();
     $customerReportReview->getGridBlock()->openReview($customer);
     $reviewIndex->getReviewGrid()->search($filter);
     unset($filter['visible_in']);
     \PHPUnit_Framework_Assert::assertTrue($reviewIndex->getReviewGrid()->isRowVisible($filter, false), 'Customer review is absent in Review grid.');
 }
 /**
  * Assert that review is visible in review grid for select product
  *
  * @param ReviewIndex $reviewIndex
  * @param Review $review
  * @param ProductReportReview $productReportReview
  * @param AssertProductReviewInGrid $assertProductReviewInGrid
  * @return void
  */
 public function processAssert(ReviewIndex $reviewIndex, Review $review, ProductReportReview $productReportReview, AssertProductReviewInGrid $assertProductReviewInGrid)
 {
     $productReportReview->open();
     $product = $review->getDataFieldConfig('entity_id')['source']->getEntity();
     $productReportReview->getGridBlock()->openReview($product->getName());
     unset($assertProductReviewInGrid->filter['visible_in']);
     $filter = $assertProductReviewInGrid->prepareFilter($product, $review->getData(), '');
     \PHPUnit_Framework_Assert::assertTrue($reviewIndex->getReviewGrid()->isRowVisible($filter, false), 'Review for ' . $product->getName() . ' product is not visible in reports grid.');
 }
 /**
  * Prepare Review data
  *
  * @param Review $review
  * @param Review $reviewInitial
  * @return array
  */
 protected function prepareData(Review $review, Review $reviewInitial)
 {
     $dataReviewInitial = $reviewInitial->getData();
     $data = $review->getData();
     foreach ($dataReviewInitial as $key => $value) {
         if (!isset($data[$key])) {
             $data[$key] = $value;
         }
     }
     $data['type'] = 'Customer';
     return $data;
 }
 /**
  * Assert that review data on edit page equals passed from fixture.
  *
  * @param ReviewIndex $reviewIndex
  * @param Review $review
  * @param ReviewEdit $reviewEdit
  * @return void
  */
 public function processAssert(ReviewIndex $reviewIndex, Review $review, ReviewEdit $reviewEdit)
 {
     $reviewIndex->open();
     $reviewGrid = $reviewIndex->getReviewGrid();
     $reviewGrid->searchAndOpen(['title' => $review->getTitle()]);
     $fixtureData = $review->getData();
     $formData = $reviewEdit->getReviewForm()->getData();
     if (isset($fixtureData['type'])) {
         $formData['type'] = $reviewEdit->getReviewForm()->getPostedBy();
     }
     $error = $this->verifyData($fixtureData, $formData);
     \PHPUnit_Framework_Assert::assertEmpty($error, $error);
 }
 /**
  * Assert that product review available on product page.
  *
  * @param CatalogProductView $catalogProductView
  * @param Review $review
  * @param FixtureInterface $product
  * @param BrowserInterface $browser
  * @param AdminCache $cachePage
  * @return void
  */
 public function processAssert(CatalogProductView $catalogProductView, Review $review, FixtureInterface $product, BrowserInterface $browser, AdminCache $cachePage)
 {
     $errors = [];
     $cachePage->open()->getActionsBlock()->flushMagentoCache();
     $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html');
     $reviewBlock = $catalogProductView->getCustomerReviewBlock();
     $catalogProductView->getViewBlock()->selectTab('Reviews');
     \PHPUnit_Framework_Assert::assertContains(sprintf("You're reviewing:\n%s", $product->getName()), $catalogProductView->getReviewFormBlock()->getLegend()->getText());
     foreach ($review->getData() as $name => $value) {
         $reviewValue = $reviewBlock->getFieldValue($name);
         if ($reviewValue !== null && 0 !== strcasecmp($value, trim($reviewValue))) {
             $errors[] = '- field "' . $name . '" is not equals submitted one, error value "' . $value . '"';
         }
     }
     \PHPUnit_Framework_Assert::assertEmpty($errors, 'The Review contains the following errors:' . PHP_EOL . implode(PHP_EOL, $errors));
 }
 /**
  * Create review.
  *
  * @param Review $review
  * @param int $rating
  * @return Review
  */
 protected function createReview($review, $rating)
 {
     $reviewData = $review->getData();
     $fixtureRating = $this->reviewInitial->getDataFieldConfig('ratings')['source']->getRatings()[0];
     $reviewData['ratings'][0] = ['fixtureRating' => $fixtureRating, 'rating' => $rating];
     return $this->fixtureFactory->createByCode('review', ['data' => $reviewData]);
 }
Пример #9
0
 /**
  * Verify that review is equals to data on form
  *
  * @param Review $review
  * @param Form $form
  * @return bool
  */
 protected function verifyReviewBackendForm(Review $review, Form $form)
 {
     $reviewData = [];
     foreach ($review->getData()['fields'] as $key => $field) {
         $reviewData[$key] = $field['value'];
     }
     $dataDiff = array_diff($reviewData, $form->getData($review));
     return empty($dataDiff);
 }