function it_should_delegate_calculation_to_a_correct_calculator($calculator, TaxRateInterface $rate)
 {
     $rate->getCalculator()->willReturn('default');
     $calculator->calculate(100, $rate)->shouldBeCalled()->willReturn(23);
     $this->calculate(100, $rate)->shouldReturn(23);
 }
 function it_should_complain_if_correct_calculator_doesnt_exist_for_given_rate(TaxRateInterface $rate, CalculatorInterface $calculator)
 {
     $this->registerCalculator('default', $calculator);
     $rate->getCalculator()->willReturn('custom');
     $this->shouldThrow('InvalidArgumentException')->duringCalculate(100, $rate);
 }
 /**
  * {@inheritdoc}
  */
 public function calculate($base, TaxRateInterface $rate)
 {
     /** @var CalculatorInterface $calculator */
     $calculator = $this->calculatorsRegistry->get($rate->getCalculator());
     return $calculator->calculate($base, $rate);
 }
Esempio n. 4
0
 /**
  * {@inheritdoc}
  */
 public function calculate($base, TaxRateInterface $rate)
 {
     $calculator = $this->getCalculator($rate->getCalculator());
     return $calculator->calculate($base, $rate);
 }