/** * Apply sales rule during backend order creation. * * @return void */ public function run() { if ($this->salesRule !== null) { if ($this->salesRule->hasData('coupon_code')) { $this->orderCreateIndex->getCreateBlock()->getCouponsBlock()->applyCouponsCode($this->salesRule); } } }
/** * Assert that displayed sales rule data on edit page equals passed from fixture. * * @param PromoQuoteIndex $promoQuoteIndex * @param PromoQuoteEdit $promoQuoteEdit * @param SalesRule $salesRule * @return void */ public function processAssert(PromoQuoteIndex $promoQuoteIndex, PromoQuoteEdit $promoQuoteEdit, SalesRule $salesRule) { $promoQuoteIndex->open(); $promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen(['name' => $salesRule->getName()]); $formData = $promoQuoteEdit->getSalesRuleForm()->getData(); $errors = $this->verifyData($salesRule->getData(), $formData); \PHPUnit_Framework_Assert::assertEmpty($errors, $errors); }
/** * Delete Sales Rule Entity test. * * @param SalesRule $salesRule * @return void */ public function test(SalesRule $salesRule) { // Preconditions: $salesRule->persist(); // Steps: $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen(['name' => $salesRule->getName()]); $this->promoQuoteEdit->getFormPageActions()->delete(); }
/** * Prepare website ids for curl. * * @param SalesRule $fixture * @return array */ protected function prepareWebsiteIds(SalesRule $fixture) { $websites = $fixture->getDataFieldConfig('website_ids')['source']->getWebsites(); $data = []; /** @var Website $website */ foreach ($websites as $website) { $data[] = $website->getWebsiteId(); } return $data; }
/** * Delete sales rule, catalog rule, all tax rules and setup default tax configuration. * * @return void */ public function tearDown() { if (isset($this->salesRule)) { $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen(['name' => $this->salesRule->getName()]); $this->promoQuoteEdit->getFormPageActions()->delete(); $this->salesRule = null; } if (isset($this->catalogRule)) { $this->catalogRuleIndex->open(); $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen(['name' => $this->catalogRule->getName()]); $this->catalogRuleEdit->getFormPageActions()->delete(); $this->catalogRule = null; } $this->objectManager->create('Mage\\Tax\\Test\\TestStep\\DeleteAllTaxRulesStep')->run(); }
/** * Delete sales rule, catalog rule, all tax rules and setup default tax configuration. * * @return void */ public function tearDown() { if (isset($this->salesRule)) { $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen(['name' => $this->salesRule->getName()]); $this->promoQuoteEdit->getFormPageActions()->delete(); $this->salesRule = null; } if (isset($this->catalogRule)) { $this->catalogRuleIndex->open(); $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen(['name' => $this->catalogRule->getName()]); $this->catalogRuleEdit->getFormPageActions()->delete(); $this->catalogRule = null; } $this->objectManager->create('Mage\\Tax\\Test\\TestStep\\DeleteAllTaxRulesStep')->run(); // TODO: Move set default configuration and create default tax rule to "tearDownAfterClass" method after fix bug MAGETWO-29331 $this->objectManager->create('Mage\\Core\\Test\\TestStep\\SetupConfigurationStep', ['configData' => 'default_tax_configuration'])->run(); $this->objectManager->create('\\Mage\\Tax\\Test\\TestStep\\CreateTaxRuleStep', ['taxRule' => 'default'])->run(); }
/** * 1. Navigate to frontend * 2. If "Log Out" link is visible and "isLoggedIn" empty * - makes logout * 3. If "isLoggedIn" not empty * - login as customer * 4. Clear shopping cart * 5. Add test product(s) to shopping cart with specify quantity * 6. If "salesRule/data/coupon_code" not empty: * - fill "Enter your code" input in Dіscount Codes * - click "Apply Coupon" button * 7. If "address/data/country_id" not empty: * On Estimate Shipping and Tax: * - fill Country, State/Province, Zip/Postal Code * - click 'Get a Quote' button * - select 'Flat Rate' shipping * - click 'Update Total' button * 8. Implementation assert * * @param CheckoutCart $checkoutCart * @param CmsIndex $cmsIndex * @param CustomerAccountLogin $customerAccountLogin * @param CustomerAccountLogout $customerAccountLogout * @param CatalogCategoryView $catalogCategoryView * @param CatalogProductView $catalogProductView * @param Customer $customer * @param SalesRule $salesRule * @param Address $address * @param Browser $browser * @param array $productQuantity * @param CatalogProductSimple $productForSalesRule1 * @param CatalogProductSimple $productForSalesRule2 * @param array $shipping [optional] * @param int|null $isLoggedIn * @return void * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function processAssert(CheckoutCart $checkoutCart, CmsIndex $cmsIndex, CustomerAccountLogin $customerAccountLogin, CustomerAccountLogout $customerAccountLogout, CatalogCategoryView $catalogCategoryView, CatalogProductView $catalogProductView, Customer $customer, SalesRule $salesRule, Address $address, Browser $browser, array $productQuantity, CatalogProductSimple $productForSalesRule1, CatalogProductSimple $productForSalesRule2, array $shipping = [], $isLoggedIn = null) { $this->checkoutCart = $checkoutCart; $this->cmsIndex = $cmsIndex; $this->customerAccountLogin = $customerAccountLogin; $this->customerAccountLogout = $customerAccountLogout; $this->catalogCategoryView = $catalogCategoryView; $this->catalogProductView = $catalogProductView; $this->customer = $customer; $this->browser = $browser; $this->productForSalesRule1 = $productForSalesRule1; $this->productForSalesRule2 = $productForSalesRule2; $isLoggedIn ? $this->login() : $this->customerAccountLogout->open(); $this->checkoutCart->open()->getCartBlock()->clearShoppingCart(); $this->addProductsToCart($productQuantity); if ($address->hasData('country_id')) { $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($address); if (!empty($shipping)) { $this->checkoutCart->getShippingBlock()->selectShippingMethod($shipping); } } if ($salesRule->getCouponCode()) { $this->checkoutCart->getDiscountCodesBlock()->applyCouponCode($salesRule->getCouponCode()); } $this->assert(); }
/** * Create Sales Rule. * * @param SalesRule $salesRule * @return void */ public function test(SalesRule $salesRule) { // Prepare data for tearDown $this->salesRuleName = $salesRule->getName(); // Steps $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getGridPageActions()->addNew(); $this->promoQuoteNew->getSalesRuleForm()->fill($salesRule); $this->promoQuoteNew->getFormPageActions()->save(); }
/** * Apply sales rule before one page checkout. * * @return void */ public function run() { if ($this->salesRule !== null) { $this->checkoutCart->getDiscountCodesBlock()->applyCouponCode($this->salesRule->getCouponCode()); } }
/** * Assert that sales rule is not present in cart price rules grid. * * @param PromoQuoteIndex $promoQuoteIndex * @param SalesRule $salesRule * @return void */ public function processAssert(PromoQuoteIndex $promoQuoteIndex, SalesRule $salesRule) { $promoQuoteIndex->open(); \PHPUnit_Framework_Assert::assertFalse($promoQuoteIndex->getPromoQuoteGrid()->isRowVisible(['name' => $salesRule->getName()]), "Sales rule {$salesRule->getName()} is present in cart price rules grid."); }
/** * Deleting cart price rule. * * @return void */ public function tearDown() { if (!$this->salesRule instanceof SalesRule) { return; } $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen(['name' => $this->salesRule->getName()]); $this->promoQuoteEdit->getFormPageActions()->delete(); }