/** * Update catalog price rule * * @param CatalogRule $catalogPriceRule * @param CatalogRule $catalogPriceRuleOriginal * @param string $saveAction * @return array */ public function testUpdateCatalogPriceRule(CatalogRule $catalogPriceRule, CatalogRule $catalogPriceRuleOriginal, $saveAction) { // Preconditions $catalogPriceRuleOriginal->persist(); //Prepare data $productSimple = $this->fixtureFactory->createByCode('catalogProductSimple', ['dataSet' => 'product_with_category']); if ($saveAction == 'saveAndApply') { /** @var CategoryIds $sourceCategories */ $sourceCategories = $productSimple->getDataFieldConfig('category_ids')['source']; $replace = ['conditions' => ['conditions' => ['%category_1%' => $sourceCategories->getIds()[0]]]]; } else { $replace = []; } $filter = ['name' => $catalogPriceRuleOriginal->getName(), 'rule_id' => $catalogPriceRuleOriginal->getId()]; // Steps $this->catalogRuleIndex->open(); $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); $this->catalogRuleNew->getEditForm()->fill($catalogPriceRule, null, $replace); $this->catalogRuleNew->getFormPageActions()->{$saveAction}(); // Prepare data for tear down $this->catalogRules[] = $catalogPriceRule; // Create simple product with category $productSimple->persist(); return ['products' => [$productSimple]]; }
/** * Delete Catalog Price Rule test * * @param CatalogRule $catalogPriceRule * @return void */ public function testDeleteCatalogPriceRule(CatalogRule $catalogPriceRule) { // Precondition $catalogPriceRule->persist(); $filter = ['name' => $catalogPriceRule->getName(), 'rule_id' => $catalogPriceRule->getId()]; // Steps $this->catalogRuleIndex->open(); $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); $this->catalogRuleNew->getFormPageActions()->delete(); }
/** * Assert that Catalog Price Rule is not presented in grid and cannot be found using ID, Rule name * * @param CatalogRule $catalogPriceRule * @param CatalogRuleIndex $pageCatalogRuleIndex * @return void */ public function processAssert(CatalogRule $catalogPriceRule, CatalogRuleIndex $pageCatalogRuleIndex) { $filter = ['rule_id' => $catalogPriceRule->getId(), 'name' => $catalogPriceRule->getName()]; $pageCatalogRuleIndex->open(); \PHPUnit_Framework_Assert::assertFalse($pageCatalogRuleIndex->getCatalogRuleGrid()->isRowVisible($filter), 'Catalog Price Rule \'' . $filter['rule_id'] . '\', ' . 'with name \'' . $filter['name'] . '\', ' . 'is present in Catalog Price Rule grid.'); }