/**
  * Assert that displayed sales rule data on edit page(backend) equals passed from fixture.
  *
  * @param PromoQuoteIndex $promoQuoteIndex
  * @param PromoQuoteEdit $promoQuoteEdit
  * @param SalesRule $salesRule
  * @param SalesRule $salesRuleOrigin
  * @return void
  */
 public function processAssert(PromoQuoteIndex $promoQuoteIndex, PromoQuoteEdit $promoQuoteEdit, SalesRule $salesRule, SalesRule $salesRuleOrigin = null)
 {
     $filter = ['name' => $salesRule->hasData('name') ? $salesRule->getName() : $salesRuleOrigin->getName()];
     $promoQuoteIndex->open();
     $promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter);
     $formData = $promoQuoteEdit->getSalesRuleForm()->getData();
     $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));
 }
예제 #2
0
 /**
  * Create coupon related to sales rule .
  *
  * @param int $ruleId
  * @return void
  * @throws \Exception
  */
 protected function createCoupon($ruleId)
 {
     if (!$this->fixture->hasData('coupon_code')) {
         return;
     }
     $url = $_ENV['app_frontend_url'] . 'rest/V1/coupons';
     $data = ['coupon' => array_filter(['rule_id' => $ruleId, 'code' => $this->fixture->getCouponCode(), 'type' => $this->data['coupon_type'], 'usage_limit' => isset($this->data['uses_per_coupon']) ? $this->data['uses_per_coupon'] : null, 'usage_per_customer' => isset($this->data['usage_per_customer']) ? $this->data['usage_per_customer'] : null, 'is_primary' => true])];
     $this->webapiTransport->write($url, $data);
     $response = json_decode($this->webapiTransport->read(), true);
     $this->webapiTransport->close();
     if (empty($response['coupon_id'])) {
         $this->eventManager->dispatchEvent(['webapi_failed'], [$response]);
         throw new \Exception('Coupon creation by webapi handler was not successful!');
     }
 }
 /**
  * Update Sales Rule Entity.
  *
  * @param SalesRule $salesRule
  * @param SalesRule $salesRuleOrigin
  * @return void
  */
 public function testUpdateSalesRule(SalesRule $salesRule, SalesRule $salesRuleOrigin)
 {
     // Preconditions
     $salesRuleOrigin->persist();
     $filter = ['name' => $salesRuleOrigin->getName()];
     $this->salesRuleName = $salesRule->hasData('name') ? $salesRule->getName() : $salesRuleOrigin->getName();
     // Steps
     $this->promoQuoteIndex->open();
     $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter);
     $this->promoQuoteEdit->getSalesRuleForm()->fill($salesRule);
     $this->promoQuoteEdit->getFormPageActions()->save();
 }