/** * Assert that displayed assigned products on category page equals passed from fixture. * * @param CatalogCategory $category * @param CatalogCategoryView $categoryView * @param Browser $browser * @return void */ public function processAssert(CatalogCategory $category, CatalogCategoryView $categoryView, Browser $browser) { $browser->open($_ENV['app_frontend_url'] . strtolower($category->getUrlKey()) . '.html'); $products = $category->getDataFieldConfig('category_products')['source']->getProducts(); foreach ($products as $productFixture) { \PHPUnit_Framework_Assert::assertTrue($categoryView->getListProductBlock()->isProductVisible($productFixture), "Products '{$productFixture->getName()}' is not find."); } }
/** * Prepare category path. * * @param CatalogCategory $category * @return array */ protected function prepareFullCategoryPath(CatalogCategory $category) { $path = []; $parentCategory = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); if ($parentCategory != null) { $path = $this->prepareFullCategoryPath($parentCategory); } return array_filter(array_merge($path, [$category->getPath(), $category->getName()])); }
/** * Prepare assigned products for category. * * @param CatalogCategory $category * @return string */ protected function prepareCategoryProducts(CatalogCategory $category) { $products = $category->getDataFieldConfig('category_products')['source']->getProducts(); $productIds = []; foreach ($products as $product) { $productIds[] = $product->getId(); } return implode('=&', $productIds); }
/** * Get category products. * * @param CatalogCategory $category * @return array */ protected function getCategoryProducts(CatalogCategory $category) { return $category->hasData('category_products') ? $category->getDataFieldConfig('category_products')['source']->getProducts() : []; }