<?php
/**
* Test for Calculator
*
* @link https://github.com/picamator/PriceCalculator
* @license http://opensource.org/licenses/BSD-3-Clause New BSD License
*/
namespace PriceCalculator;
use PriceCalculator\BaseTest;
use PriceCalculator\Strategy\PriceNetInterface;
use PriceCalculator\Strategy\PriceNet\PriceOver;
use PriceCalculator\Strategy\PriceNet\PercentOver;
use PriceCalculator\Strategy\PriceNet\Manual;
class CalculatorTest extends BaseTest
{
/**
* @dataProvider providerStrategyPercentNet
* @param PriceNetInterface $strategy
* @param float $vat_percent
* @param float $price_purchase
* @param array $expected_result
*/
public function testStrategyPriceNet(PriceNetInterface $strategy,
$vat_percent, $price_purchase, array $expected_result
) {
$price_calculator = new PriceCalculator($strategy, $vat_percent);
$result = $price_calculator->setPricePurchase($price_purchase)
->getPrice();
$this->assertEqualArrays($expected_result, $result);
}
public function providerStrategyPercentNet()
{
// strategies
$price_over = new PriceOver(array('price_over' => 5.9991));
$percent_over = new PercentOver(array('percent_over' => 10));
$manual = new Manual(array('price_net' => 109.9911));
// data
return array(
array($price_over, 23, 98.9921, array(
'price_net' => 104.9912,
'price_gross' => 129.1391,
'vat_value' => 24.1479
)),
array($percent_over, 23, 98.9921, array(
'price_net' => 108.8913,
'price_gross' => 133.9362,
'vat_value' => 25.0449
)),
array($manual, 23, 98.9921, array(
'price_net' => 109.9911,
'price_gross' => 135.289,
'vat_value' => 25.2979
))
);
}
}
|