Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UpdateSalesRuleEntityTest.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteEdit;
11 use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteIndex;
12 use Magento\Mtf\Fixture\FixtureFactory;
13 use Magento\Mtf\TestCase\Injectable;
14 
30 class UpdateSalesRuleEntityTest extends Injectable
31 {
32  /* tags */
33  const MVP = 'yes';
34  /* end tags */
35 
41  protected $promoQuoteEdit;
42 
48  protected $promoQuoteIndex;
49 
55  protected $salesRuleName;
56 
62  protected $replace;
63 
70  public function __prepare(FixtureFactory $fixtureFactory)
71  {
72  $productForSalesRule1 = $fixtureFactory->createByCode(
73  'catalogProductSimple',
74  ['dataset' => 'simple_for_salesrule_1']
75  );
76  $productForSalesRule1->persist();
77  $this->replace = [
78  'actions' => [
79  'actions_serialized' => [
80  '%category_id%' => $productForSalesRule1->getDataFieldConfig('category_ids')['source']->getIds()[0]
81  ]
82  ],
83  ];
84  return [
85  'productForSalesRule1' => $productForSalesRule1,
86  ];
87  }
88 
96  public function __inject(
97  PromoQuoteIndex $promoQuoteIndex,
98  PromoQuoteEdit $promoQuoteEdit
99  ) {
100  $this->promoQuoteIndex = $promoQuoteIndex;
101  $this->promoQuoteEdit = $promoQuoteEdit;
102  }
103 
111  public function testUpdateSalesRule(
112  SalesRule $salesRule,
113  SalesRule $salesRuleOrigin
114  ) {
115  // Preconditions
116  $salesRuleOrigin->persist();
117  $filter = [
118  'name' => $salesRuleOrigin->getName(),
119  ];
120  $this->salesRuleName = $salesRule->hasData('name') ? $salesRule->getName() : $salesRuleOrigin->getName();
121 
122  // Steps
123  $this->promoQuoteIndex->open();
124  $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter);
125  $this->promoQuoteEdit->getSalesRuleForm()->fill($salesRule, null, $this->replace);
126  $this->promoQuoteEdit->getFormPageActions()->save();
127  }
128 
134  public function tearDown()
135  {
136  $filter = [
137  'name' => $this->salesRuleName,
138  ];
139 
140  $this->promoQuoteIndex->open();
141  $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter);
142  $this->promoQuoteEdit->getFormPageActions()->delete();
143  $this->promoQuoteEdit->getModalBlock()->acceptAlert();
144  }
145 }
__inject(PromoQuoteIndex $promoQuoteIndex, PromoQuoteEdit $promoQuoteEdit)
testUpdateSalesRule(SalesRule $salesRule, SalesRule $salesRuleOrigin)