11 use Magento\Mtf\Fixture\FixtureFactory;
12 use Magento\Mtf\TestCase\Injectable;
15 use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteEdit;
16 use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteIndex;
17 use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteNew;
106 public function testCreateSalesRule(
108 CatalogProductSimple $productForSalesRule1,
109 CatalogProductSimple $productForSalesRule2 =
null,
111 $conditionEntity =
null,
112 SalesRule $salesRuleEdit =
null 121 $productForSalesRule1->persist();
122 if ($productForSalesRule2 !==
null) {
123 $productForSalesRule2->persist();
124 if ($conditionEntity !==
null) {
125 $replace = $this->prepareCondition($productForSalesRule2, $conditionEntity);
130 $this->promoQuoteNew->open();
131 $this->promoQuoteNew->getSalesRuleForm()->fill(
$salesRule,
null, $replace);
134 $this->promoQuoteNew->getFormPageActions()->saveAndContinue();
135 $form = $this->promoQuoteEdit->getSalesRuleForm();
136 $form->openSection(
'manage_coupon_code');
138 $section = $form->getSection(
'manage_coupon_code');
139 $section->fill($salesRuleEdit);
140 $section->generateCouponCodes();
142 $this->promoQuoteEdit->getFormPageActions()->save();
146 $this->promoQuoteNew->getFormPageActions()->save();
157 protected function prepareCondition(CatalogProductSimple $productSimple, $conditionEntity)
161 switch ($conditionEntity) {
163 $result[
'%category_id%'] = $productSimple->getDataFieldConfig(
'category_ids')[
'source']->getIds()[0];
167 $attributes = $productSimple->getDataFieldConfig(
'attribute_set_id')[
'source']
168 ->getAttributeSet()->getDataFieldConfig(
'assigned_attributes')[
'source']->getAttributes();
177 'conditions_serialized' =>
$result,
193 $this->promoQuoteIndex->open();
194 $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter);
195 $this->promoQuoteEdit->getFormPageActions()->delete();
196 $this->promoQuoteEdit->getModalBlock()->acceptAlert();
__inject(PromoQuoteNew $promoQuoteNew, PromoQuoteIndex $promoQuoteIndex, PromoQuoteEdit $promoQuoteEdit, FixtureFactory $fixtureFactory)