/** * 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)); }