Exemplo n.º 1
0
 /**
  * Convert a rate model to a TaxRate data object
  *
  * @param TaxRateModel $rateModel
  * @return TaxRateDataObject
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function createTaxRateDataObjectFromModel(TaxRateModel $rateModel)
 {
     $this->taxRateDataObjectBuilder->populateWithArray([]);
     if ($rateModel->getId()) {
         $this->taxRateDataObjectBuilder->setId($rateModel->getId());
     }
     if ($rateModel->getTaxCountryId()) {
         $this->taxRateDataObjectBuilder->setCountryId($rateModel->getTaxCountryId());
     }
     /* tax region id may be 0 which is "*" which would fail an if check */
     if ($rateModel->getTaxRegionId() !== null) {
         $this->taxRateDataObjectBuilder->setRegionId($rateModel->getTaxRegionId());
         $regionName = $this->directoryRegion->load($rateModel->getTaxRegionId())->getCode();
         $this->taxRateDataObjectBuilder->setRegionName($regionName);
     }
     if ($rateModel->getRegionName()) {
         $this->taxRateDataObjectBuilder->setRegionName($rateModel->getRegionName());
     }
     if ($rateModel->getTaxPostcode()) {
         $this->taxRateDataObjectBuilder->setPostcode($rateModel->getTaxPostcode());
     }
     if ($rateModel->getCode()) {
         $this->taxRateDataObjectBuilder->setCode($rateModel->getCode());
     }
     if ($rateModel->getRate()) {
         $this->taxRateDataObjectBuilder->setPercentageRate((double) $rateModel->getRate());
     }
     if ($rateModel->getZipIsRange()) {
         $zipRange = $this->zipRangeDataObjectBuilder->populateWithArray([])->setFrom($rateModel->getZipFrom())->setTo($rateModel->getZipTo())->create();
         $this->taxRateDataObjectBuilder->setZipRange($zipRange);
     }
     $this->taxRateDataObjectBuilder->setTitles($this->createTitleArrayFromModel($rateModel));
     return $this->taxRateDataObjectBuilder->create();
 }
Exemplo n.º 2
0
 /**
  * @param array $dataArray
  * @param string $errorMessages
  * @throws \Magento\Framework\Exception\InputException
  *
  * @dataProvider createDataProvider
  * @expectedException \Magento\Framework\Exception\InputException
  * @magentoDbIsolation enabled
  */
 public function testCreateTaxRateWithExceptionMessages($dataArray, $errorMessages)
 {
     $taxRate = $this->taxRateBuilder->populateWithArray($dataArray)->create();
     try {
         $this->taxRateService->createTaxRate($taxRate);
     } catch (InputException $exception) {
         $errors = $exception->getErrors();
         foreach ($errors as $key => $error) {
             $this->assertEquals($errorMessages[$key], $error->getMessage());
         }
         throw $exception;
     }
 }
Exemplo n.º 3
0
 /**
  * @param array $dataArray
  * @param string $errorMessages
  * @throws \Magento\Framework\Exception\InputException
  *
  * @dataProvider createDataProvider
  * @expectedException \Magento\Framework\Exception\InputException
  * @magentoDbIsolation enabled
  */
 public function testCreateTaxRateWithExceptionMessages($dataArray, $errorMessages)
 {
     $expectedErrorMessages = ['country_id is a required field.', 'percentage_rate is a required field.', 'code is a required field.'];
     $expectedErrorMessages = array_merge($expectedErrorMessages, $errorMessages);
     $taxRate = $this->taxRateBuilder->populateWithArray($dataArray)->create();
     try {
         $this->taxRateService->createTaxRate($taxRate);
     } catch (InputException $exception) {
         $errors = $exception->getErrors();
         foreach ($errors as $key => $error) {
             $this->assertEquals($expectedErrorMessages[$key], $error->getMessage());
         }
         throw $exception;
     }
 }