123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Pricing\Test\Unit\Render;
- use \Magento\Framework\Pricing\Render\AbstractAdjustment;
- /**
- * Test class for \Magento\Framework\Pricing\Render\AbstractAdjustment
- */
- class AbstractAdjustmentTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var AbstractAdjustment | \PHPUnit_Framework_MockObject_MockObject
- */
- protected $model;
- /**
- * @var \Magento\Framework\Pricing\PriceCurrencyInterface | \PHPUnit_Framework_MockObject_MockObject
- */
- protected $priceCurrency;
- /**
- * @var array
- */
- protected $data;
- protected function setUp()
- {
- $this->priceCurrency = $this->createMock(\Magento\Framework\Pricing\PriceCurrencyInterface::class);
- $this->data = ['argument_one' => 1];
- $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $constructorArgs = $objectManager->getConstructArguments(
- \Magento\Framework\Pricing\Render\AbstractAdjustment::class,
- [
- 'priceCurrency' => $this->priceCurrency,
- 'data' => $this->data
- ]
- );
- $this->model = $this->getMockBuilder(\Magento\Framework\Pricing\Render\AbstractAdjustment::class)
- ->setConstructorArgs($constructorArgs)
- ->setMethods(['getData', 'setData', 'apply'])
- ->getMockForAbstractClass();
- }
- public function testConvertAndFormatCurrency()
- {
- $amount = '100';
- $includeContainer = true;
- $precision = \Magento\Framework\Pricing\PriceCurrencyInterface::DEFAULT_PRECISION;
- $result = '100.0 grn';
- $this->priceCurrency->expects($this->once())
- ->method('convertAndFormat')
- ->with($amount, $includeContainer, $precision)
- ->will($this->returnValue($result));
- $this->assertEquals($result, $this->model->convertAndFormatCurrency($amount, $includeContainer, $precision));
- }
- public function testRender()
- {
- $amountRender = $this->createMock(\Magento\Framework\Pricing\Render\Amount::class);
- $arguments = ['argument_two' => 2];
- $mergedArguments = ['argument_one' => 1, 'argument_two' => 2];
- $renderText = 'amount data';
- $this->model->expects($this->at(0))
- ->method('getData')
- ->will($this->returnValue($this->data));
- $this->model->expects($this->at(1))
- ->method('setData')
- ->with($mergedArguments);
- $this->model->expects($this->at(2))
- ->method('apply')
- ->will($this->returnValue($renderText));
- $this->model->expects($this->at(3))
- ->method('setData')
- ->with($this->data);
- $result = $this->model->render($amountRender, $arguments);
- $this->assertEquals($renderText, $result);
- }
- public function testGetAmountRender()
- {
- $amountRender = $this->createMock(\Magento\Framework\Pricing\Render\Amount::class);
- $this->model->expects($this->at(0))
- ->method('getData')
- ->will($this->returnValue($this->data));
- $this->model->render($amountRender);
- $this->assertEquals($amountRender, $this->model->getAmountRender());
- }
- public function testGetPriceType()
- {
- $amountRender = $this->createMock(\Magento\Framework\Pricing\Render\Amount::class);
- $price = $this->getMockForAbstractClass(\Magento\Framework\Pricing\Price\PriceInterface::class);
- $sealableItem = $this->getMockForAbstractClass(\Magento\Framework\Pricing\SaleableInterface::class);
- $priceInfo = $this->createMock(\Magento\Framework\Pricing\PriceInfo\Base::class);
- $priceCode = 'regular_price';
- $amountRender->expects($this->once())
- ->method('getSaleableItem')
- ->will($this->returnValue($sealableItem));
- $sealableItem->expects($this->once())
- ->method('getPriceInfo')
- ->will($this->returnValue($priceInfo));
- $priceInfo->expects($this->once())
- ->method('getPrice')
- ->with($priceCode)
- ->will($this->returnValue($price));
- $this->model->expects($this->at(0))
- ->method('getData')
- ->will($this->returnValue($this->data));
- $this->model->render($amountRender);
- $this->assertEquals($price, $this->model->getPriceType($priceCode));
- }
- public function testGetPrice()
- {
- $price = 100;
- $amountRender = $this->createMock(\Magento\Framework\Pricing\Render\Amount::class);
- $amountRender->expects($this->once())
- ->method('getPrice')
- ->with()
- ->will($this->returnValue($price));
- $this->model->expects($this->at(0))
- ->method('getData')
- ->will($this->returnValue($this->data));
- $this->model->render($amountRender);
- $this->assertEquals($price, $this->model->getPrice());
- }
- public function testGetSealableItem()
- {
- $sealableItem = $this->getMockForAbstractClass(\Magento\Framework\Pricing\SaleableInterface::class);
- $amountRender = $this->createMock(\Magento\Framework\Pricing\Render\Amount::class);
- $amountRender->expects($this->once())
- ->method('getSaleableItem')
- ->with()
- ->will($this->returnValue($sealableItem));
- $this->model->expects($this->at(0))
- ->method('getData')
- ->will($this->returnValue($this->data));
- $this->model->render($amountRender);
- $this->assertEquals($sealableItem, $this->model->getSaleableItem());
- }
- public function testGetAdjustment()
- {
- $amountRender = $this->createMock(\Magento\Framework\Pricing\Render\Amount::class);
- $adjustment = $this->getMockForAbstractClass(\Magento\Framework\Pricing\Adjustment\AdjustmentInterface::class);
- $sealableItem = $this->getMockForAbstractClass(\Magento\Framework\Pricing\SaleableInterface::class);
- $priceInfo = $this->createMock(\Magento\Framework\Pricing\PriceInfo\Base::class);
- $adjustmentCode = 'tax';
- $amountRender->expects($this->once())
- ->method('getSaleableItem')
- ->will($this->returnValue($sealableItem));
- $sealableItem->expects($this->once())
- ->method('getPriceInfo')
- ->will($this->returnValue($priceInfo));
- $priceInfo->expects($this->once())
- ->method('getAdjustment')
- ->with($adjustmentCode)
- ->will($this->returnValue($adjustment));
- $this->model->expects($this->at(0))
- ->method('getData')
- ->will($this->returnValue($this->data));
- $this->model->expects($this->once())
- ->method('getAdjustmentCode')
- ->will($this->returnValue($adjustmentCode));
- $this->model->render($amountRender);
- $this->assertEquals($adjustment, $this->model->getAdjustment());
- }
- public function testFormatCurrency()
- {
- $amount = 5.3456;
- $includeContainer = false;
- $precision = 3;
- $expected = 5.346;
- $this->priceCurrency->expects($this->once())
- ->method('format')
- ->with($amount, $includeContainer, $precision)
- ->will($this->returnValue($expected));
- $result = $this->model->formatCurrency($amount, $includeContainer, $precision);
- $this->assertEquals($expected, $result, 'formatCurrent returned unexpected result');
- }
- }
|