diff --git a/app/code/Magento/CatalogRule/Helper/Data.php b/app/code/Magento/CatalogRule/Helper/Data.php index 439cff46006938de35eb744508e7b7424413c2fa..33ff883655675bf067876ac24d74ef0248ed99ce 100644 --- a/app/code/Magento/CatalogRule/Helper/Data.php +++ b/app/code/Magento/CatalogRule/Helper/Data.php @@ -12,13 +12,12 @@ namespace Magento\CatalogRule\Helper; class Data extends \Magento\Framework\App\Helper\AbstractHelper { /** - * Algorithm for calculating price rule + * Algorithm for calculating price by rule * * @param string $actionOperator * @param int $ruleAmount * @param float $price * @return float|int - * @api */ public function calcPriceRule($actionOperator, $ruleAmount, $price) { diff --git a/app/code/Magento/CatalogRule/Test/Unit/Helper/DataTest.php b/app/code/Magento/CatalogRule/Test/Unit/Helper/DataTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2d72cd6c2c62e2aa83e11517a0b45bd133712238 --- /dev/null +++ b/app/code/Magento/CatalogRule/Test/Unit/Helper/DataTest.php @@ -0,0 +1,68 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\CatalogRule\Test\Unit\Helper; + +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; + +class DataTest extends \PHPUnit_Framework_TestCase +{ + /** + * Helper object + * + * @var \Magento\CatalogRule\Helper\Data + */ + protected $helper; + + protected function setUp() + { + $this->helper = (new ObjectManager($this))->getObject('Magento\CatalogRule\Helper\Data'); + } + + /** + * Test price rule calculation + * + * @param string $actionOperator + * @param int|float $ruleAmount + * @param int|float $price + * @param int|float $expectedAmount + * + * @dataProvider calcPriceRuleDataProvider + */ + public function testCalcPriceRule($actionOperator, $ruleAmount, $price, $expectedAmount) + { + $this->assertEquals($expectedAmount, $this->helper->calcPriceRule($actionOperator, $ruleAmount, $price)); + } + + /** + * Data provider for cal price rule test + * + * @return array + */ + public function calcPriceRuleDataProvider() + { + return [ + ['to_fixed', 10, 10, 10], + ['to_fixed', 0, 10, 0], + ['to_fixed', 10, 0, 0], + ['to_fixed', 0, 0, 0], + ['to_percent', 100, 100, 100], + ['to_percent', 10, 100, 10], + ['to_percent', 10, 70, 7], + ['to_percent', 100, 10, 10], + ['by_fixed', 100, 100, 0], + ['by_fixed', 10, 100, 90], + ['by_fixed', 100, 10, 0], + ['by_percent', 100, 100, 0], + ['by_percent', 100, 10, 0], + ['by_percent', 100, 1, 0], + ['by_percent', 10, 100, 90], + ['by_percent', 10, 10, 9], + ['by_percent', 1, 10, 9.90], + ]; + } + +}