/** * Assert that duplicated product can be found in grid by type, template, status and stock status. * * @param InjectableFixture $product * @param CatalogProduct $productGrid * @return void */ public function processAssert(InjectableFixture $product, CatalogProduct $productGrid) { $config = $product->getDataConfig(); $filter = ['name' => $product->getName(), 'visibility' => $product->getVisibility(), 'status' => 'Disabled', 'type' => ucfirst($config['create_url_params']['type']) . ' Product', 'price_to' => number_format($product->getPrice(), 2)]; $productGrid->open()->getProductGrid()->search($filter); \PHPUnit_Framework_Assert::assertTrue($productGrid->getProductGrid()->isRowVisible($filter, false, false), 'Product duplicate is absent in Products grid.'); }
/** * Prepare data for creating product request. * * @return void */ protected function prepareData() { $config = $this->fixture->getDataConfig(); $this->fields['product']['type_id'] = $config['type_id']; $this->prepareFpt(); $this->prepareAdvancedInventory(); $this->prepareTierPrice(); $this->prepareCustomOptions(); }
/** * Get text of Stock Availability control. * * @param InjectableFixture $product * @return string */ public function getStockAvailability(InjectableFixture $product) { $dataConfig = $product->getDataConfig(); $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; return $this->hasRender($typeId) ? $this->callRender($typeId, 'get' . ucfirst($typeId) . 'StockAvailability') : strtolower($this->_rootElement->find($this->stockAvailability)->getText()); }
/** * Prepare config data. * * @param InjectableFixture $product * @return array */ protected function prepareConfig(InjectableFixture $product) { $config = $product->getDataConfig(); if ($product->hasData('attribute_set_id')) { $config['create_url_params']['set'] = $product->getDataFieldConfig('attribute_set_id')['source']->getAttributeSet()->getAttributeSetId(); } return $config; }
/** * Get product type * * @return string */ protected function getProductType() { $config = $this->product->getDataConfig(); return ucfirst($config['type_id']) . ' Product'; }
/** * Get cart item block. * * @param InjectableFixture $product * @return CartItem */ public function getCartItem(InjectableFixture $product) { $dataConfig = $product->getDataConfig(); $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; $cartItem = null; if ($this->hasRender($typeId)) { $cartItem = $this->callRender($typeId, 'getCartItem', ['product' => $product]); } else { $cartItemBlock = $this->_rootElement->find(sprintf($this->cartItemByProductName, $product->getName()), Locator::SELECTOR_XPATH); $cartItem = $this->blockFactory->create($this->cartItemClass, ['element' => $cartItemBlock]); } return $cartItem; }
/** * Get product type. * * @param InjectableFixture $product * @return string|null */ protected function getProductType(InjectableFixture $product) { $dataConfig = $product->getDataConfig(); return isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; }