예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function calculate(ShipmentInterface $subject, array $configuration)
 {
     $firstUnitCost = $configuration['first_unit_cost'];
     $additionalUnitCost = $configuration['additional_unit_cost'];
     $additionalUnitLimit = $configuration['additional_unit_limit'];
     $totalUnits = $subject->getShippingUnitCount();
     $additionalUnits = $totalUnits - 1;
     if (0 !== $additionalUnitLimit) {
         $additionalUnits = $additionalUnitLimit >= $additionalUnits ? $additionalUnits : $additionalUnitLimit;
     }
     return (int) ($firstUnitCost + $additionalUnits * $additionalUnitCost);
 }
 function its_calculated_value_should_be_an_integer(ShipmentInterface $shipment)
 {
     $configuration = ['first_unit_cost' => 1090, 'additional_unit_cost' => 200, 'additional_unit_limit' => 3];
     $shipment->getShippingUnitCount()->willReturn(6);
     $this->calculate($shipment, $configuration)->shouldBeInteger();
 }
예제 #3
0
 /**
  * {@inheritdoc}
  */
 public function calculate(ShipmentInterface $subject, array $configuration)
 {
     return (int) ($configuration['amount'] * $subject->getShippingUnitCount());
 }
 function its_calculated_value_should_be_an_integer(ShipmentInterface $subject)
 {
     $subject->getShippingUnitCount()->willReturn(6);
     $this->calculate($subject, ['amount' => 200])->shouldBeInteger();
 }