/**
  * Assert that displayed sales rule data on edit page(backend) equals passed from fixture.
  *
  * @param PromoQuoteIndex $promoQuoteIndex
  * @param PromoQuoteEdit $promoQuoteEdit
  * @param FixtureFactory $fixtureFactory
  * @param SalesRule $salesRule
  * @param SalesRule $salesRuleOrigin
  * @return void
  */
 public function processAssert(PromoQuoteIndex $promoQuoteIndex, PromoQuoteEdit $promoQuoteEdit, FixtureFactory $fixtureFactory, SalesRule $salesRule, SalesRule $salesRuleOrigin = null)
 {
     $filter = ['name' => $salesRule->hasData('name') ? $salesRule->getName() : $salesRuleOrigin->getName()];
     $promoQuoteIndex->open();
     $promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter);
     $fixtureData = $salesRuleOrigin != null ? array_merge($salesRuleOrigin->getData(), $salesRule->getData()) : $salesRule->getData();
     $salesRuleMerged = $fixtureFactory->createByCode('salesRule', ['data' => $fixtureData]);
     $formData = $promoQuoteEdit->getSalesRuleForm()->getData($salesRuleMerged);
     $fixtureData = $salesRuleOrigin != null ? array_merge($salesRuleOrigin->getData(), $salesRule->getData()) : $salesRule->getData();
     $dataDiff = $this->verify($fixtureData, $formData);
     \PHPUnit_Framework_Assert::assertTrue(empty($dataDiff), 'Sales rule data on edit page(backend) not equals to passed from fixture.' . "\nFailed values:\n " . implode(";\n ", $dataDiff));
 }
Ejemplo n.º 2
0
 /**
  * Prepare data for creating sales rule request.
  *
  * @param FixtureInterface $fixture
  * @return array
  */
 public function prepareData(FixtureInterface $fixture)
 {
     $this->fixture = $fixture;
     $this->data = $this->replaceMappingData($this->fixture->getData());
     $this->data['rule'] = [];
     if (isset($this->data['conditions_serialized'])) {
         $this->data['rule']['conditions'] = $this->prepareCondition($this->data['conditions_serialized']);
         unset($this->data['conditions_serialized']);
     }
     $this->prepareWebsites();
     $this->prepareCustomerGroup();
     if (isset($this->data['actions_serialized'])) {
         $this->mapTypeParams['Conditions combination']['type'] = 'Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Combine';
         $this->data['rule']['actions'] = $this->prepareCondition($this->data['actions_serialized']);
         unset($this->data['actions_serialized']);
     }
     return $this->data;
 }