Ejemplo n.º 1
0
 public function testCalculateRequestValues_CorrectTotalAmount_WithRelativeDiscount_WithDifferentVatRatesPresent()
 {
     $config = SveaConfig::getDefaultConfig();
     $order = \WebPay::createOrder($config);
     $order->addOrderRow(\WebPayItem::orderRow()->setAmountExVat(100.0)->setVatPercent(25)->setQuantity(2))->addOrderRow(\WebPayItem::orderRow()->setAmountExVat(100.0)->setVatPercent(6)->setQuantity(1))->addDiscount(\WebPayItem::relativeDiscount()->setDiscountPercent(25));
     // follows HostedPayment calculateRequestValues() outline:
     $formatter = new HostedRowFormatter();
     $request = array();
     $request['rows'] = $formatter->formatRows($order);
     $request['amount'] = $formatter->formatTotalAmount($request['rows']);
     $request['totalVat'] = $formatter->formatTotalVat($request['rows']);
     // 5000*.25 = 1250
     // 600*.25 = 150
     // matches 1400 discount
     $this->assertEquals(26700, $request['amount']);
     // 35600    - 8900 discount
     $this->assertEquals(4200, $request['totalVat']);
     //  5600    - 1400 discount (= 10000/35600 *5600) discount
 }
 public function testFormatTotalVatNegative()
 {
     $this->order->addOrderRow(\WebPayItem::orderRow()->setAmountExVat(-100)->setVatPercent(100)->setQuantity(2));
     $formatter = new HostedRowFormatter();
     $rows = $formatter->formatRows($this->order);
     $this->assertEquals(-20000, $formatter->formatTotalVat($rows));
 }