/**
  * Assert that result page contains all products, according to search request, from fixture
  *
  * @param array $products
  * @param AdvancedResult $resultPage
  * @return void
  */
 public function processAssert(array $products, AdvancedResult $resultPage)
 {
     $errors = [];
     foreach ($products as $product) {
         $name = $product->getName();
         $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($name);
         while (!$isProductVisible && $resultPage->getToolbar()->nextPage()) {
             $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($name);
         }
         if ($isProductVisible === false) {
             $errors[] = '- ' . $name;
         }
     }
     \PHPUnit_Framework_Assert::assertTrue(empty($errors), 'Were not found the following products:' . implode("\n", $errors));
 }
 /**
  * Assert that Advanced Search result page contains only product(s) according to requested from fixture
  *
  * @param array $products
  * @param AdvancedResult $resultPage
  * @param array $productsSearch
  * @param CatalogProductSimple $productSearch
  * @return void
  */
 public function processAssert(array $products, AdvancedResult $resultPage, array $productsSearch, CatalogProductSimple $productSearch)
 {
     $this->resultPage = $resultPage;
     $searchResult = [];
     foreach ($products as $key => $value) {
         if ($value === 'Yes') {
             /** @var CatalogProductSimple $productsSearch [$key] */
             $searchResult[$productsSearch[$key]->getSku()] = $productsSearch[$key];
         }
     }
     $errors = $this->checkSearchData($searchResult, $productSearch);
     foreach ($searchResult as $sku => $product) {
         /** @var CatalogProductSimple $product */
         $name = $product->getName();
         $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($product->getName());
         while (!$isProductVisible && $resultPage->getToolbar()->nextPage()) {
             $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($product->getName());
         }
         if (!$isProductVisible) {
             $errors[] = '- failed to find the product (SKU - "' . $sku . '", name - "' . $name . '") according to the search parameters';
         }
     }
     \PHPUnit_Framework_Assert::assertTrue(empty($errors), "The following errors occurred:\n" . implode("\n", $errors));
 }