public function testRemoveTaxRule() { $this->taxRuleModelMock->expects($this->any())->method('load')->with(self::TAX_RULE_ID)->will($this->returnValue($this->taxRuleModelMock)); $this->taxRuleModelMock->expects($this->any())->method('getId')->will($this->onConsecutiveCalls(self::TAX_RULE_ID, null)); $this->taxRuleModelFactoryMock->expects($this->any())->method('create')->will($this->returnValue($this->taxRuleModelMock)); $this->taxRuleRegistry->registerTaxRule($this->taxRuleModelMock); $expected = $this->taxRuleRegistry->retrieveTaxRule(self::TAX_RULE_ID); $this->assertEquals($this->taxRuleModelMock, $expected); // Remove the tax rule $this->taxRuleRegistry->removeTaxRule(self::TAX_RULE_ID); // Verify that if the tax rule is retrieved again, an exception is thrown try { $this->taxRuleRegistry->retrieveTaxRule(self::TAX_RULE_ID); $this->fail('NoSuchEntityException was not thrown as expected'); } catch (NoSuchEntityException $e) { $expectedParams = ['fieldName' => 'taxRuleId', 'fieldValue' => self::TAX_RULE_ID]; $this->assertEquals($expectedParams, $e->getParameters()); } }
/** * Save Tax Rule * * @param TaxRule $rule * @return TaxRuleModel * @throws InputException * @throws ModelException */ protected function saveTaxRule(TaxRule $rule) { $this->validate($rule); $taxRuleModel = $this->converter->createTaxRuleModel($rule); try { $taxRuleModel->save(); } catch (ModelException $e) { if ($e->getCode() == ModelException::ERROR_CODE_ENTITY_ALREADY_EXISTS) { throw new InputException($e->getMessage()); } else { throw $e; } } $this->taxRuleRegistry->registerTaxRule($taxRuleModel); return $taxRuleModel; }
/** * {@inheritdoc} */ public function deleteById($ruleId) { $rule = $this->taxRuleRegistry->retrieveTaxRule($ruleId); return $this->delete($rule); }