1084 lignes
42 KiB
PHP
1084 lignes
42 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*
|
|
* https://www.d3data.de
|
|
*
|
|
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
|
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
|
* @link https://www.oxidmodule.com
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace D3\Ordermanager\tests\unit\Modules\Application\Model;
|
|
|
|
use D3\Ordermanager\Application\Model\d3ordermanager;
|
|
use D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager;
|
|
use D3\Ordermanager\Modules\Application\Model\d3_oxorder_ordermanager;
|
|
use D3\Ordermanager\tests\unit\d3OrdermanagerUnitTestCase;
|
|
use Doctrine\DBAL\Exception as DBALException;
|
|
use Exception;
|
|
use OxidEsales\Eshop\Application\Model\Article;
|
|
use OxidEsales\Eshop\Application\Model\Basket;
|
|
use OxidEsales\Eshop\Application\Model\BasketItem;
|
|
use OxidEsales\Eshop\Application\Model\Discount;
|
|
use OxidEsales\Eshop\Application\Model\DiscountList;
|
|
use OxidEsales\Eshop\Application\Model\Order;
|
|
use OxidEsales\Eshop\Application\Model\OrderArticle;
|
|
use OxidEsales\Eshop\Core\Config;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
use OxidEsales\Eshop\Core\Price;
|
|
use OxidEsales\Eshop\Core\PriceList;
|
|
use OxidEsales\Eshop\Core\Session;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
use ReflectionException;
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager
|
|
*/
|
|
class d3_oxbasket_ordermanagerTest extends d3OrdermanagerUnitTestCase
|
|
{
|
|
/** @var d3_oxbasket_ordermanager */
|
|
protected $_oModel;
|
|
|
|
/**
|
|
* setup basic requirements
|
|
* @throws DBALException
|
|
* @throws DatabaseConnectionException
|
|
* @throws DatabaseErrorException
|
|
* @throws Exception
|
|
*/
|
|
public function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->_oModel = d3GetOxidDIC()->get('d3ox.ordermanager.'.Basket::class);
|
|
}
|
|
|
|
public function tearDown(): void
|
|
{
|
|
parent::tearDown();
|
|
|
|
unset($this->_oModel);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3getOrderManagerBasketItemInstance
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getBasketItemReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
BasketItem::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3getOrderManagerBasketItemInstance'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::addOrderArticleToBasket4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function orderArticleCanAddToBasket()
|
|
{
|
|
/** @var OrderArticle|MockObject $oOrderArticleMock */
|
|
$oOrderArticleMock = $this->getMockBuilder(OrderArticle::class)
|
|
->onlyMethods([
|
|
'getFieldData',
|
|
'getId',
|
|
])
|
|
->getMock();
|
|
$oOrderArticleMock->method('getFieldData')->willReturn(2);
|
|
$oOrderArticleMock->method('getId')->willReturn(md5('newId'));
|
|
$oOrderArticleMock->assign([
|
|
'oxvat' => 5,
|
|
'oxbprice' => 0,
|
|
'oxisbundle' => false,
|
|
]);
|
|
|
|
/** @var BasketItem|MockObject $oBasketItemMock */
|
|
$oBasketItemMock = $this->getMockBuilder(BasketItem::class)
|
|
->onlyMethods([
|
|
'setStockCheckStatus',
|
|
'initFromOrderArticle',
|
|
'setPrice',
|
|
'setWrapping',
|
|
'setBundle',
|
|
'd3OrderManagerChangeOrderArticle2RealArticle',
|
|
'setAmount',
|
|
])
|
|
->getMock();
|
|
$oBasketItemMock->method('setStockCheckStatus')->willReturn(true);
|
|
$oBasketItemMock->expects($this->once())->method('initFromOrderArticle')->willReturn(true);
|
|
$oBasketItemMock->expects($this->once())->method('setPrice')->willReturn(true);
|
|
$oBasketItemMock->method('setWrapping')->willReturn(true);
|
|
$oBasketItemMock->method('setBundle')->willReturn(true);
|
|
$oBasketItemMock->expects($this->any())->method('setAmount')->willReturn(true);
|
|
$oBasketItemMock->expects($this->once())->method('d3OrderManagerChangeOrderArticle2RealArticle');
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'd3getOrderManagerBasketItemInstance',
|
|
'onUpdate',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3getOrderManagerBasketItemInstance')->willReturn($oBasketItemMock);
|
|
$oModelMock->expects($this->once())->method('onUpdate')->willReturn(true);
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->callMethod($this->_oModel, 'addOrderArticleToBasket4OrderManager', [$oOrderArticleMock]);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3GetOrderManagerConfig
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3GetOrderManagerConfigIsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Config::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetOrderManagerConfig'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3GetOrderManagerSession
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3GetOrderManagerSessionIsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Session::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetOrderManagerSession'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::addOrderArticleToBasket4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function emptyOorderArticleCannotAddToBasket()
|
|
{
|
|
/** @var OrderArticle|MockObject $oOrderArticleMock */
|
|
$oOrderArticleMock = $this->getMockBuilder(OrderArticle::class)
|
|
->onlyMethods([
|
|
'getFieldData',
|
|
'getId',
|
|
])
|
|
->getMock();
|
|
$oOrderArticleMock->method('getFieldData')->willReturn(0);
|
|
$oOrderArticleMock->method('getId')->willReturn(md5('newId'));
|
|
|
|
/** @var BasketItem|MockObject $oBasketItemMock */
|
|
$oBasketItemMock = $this->getMockBuilder(BasketItem::class)
|
|
->onlyMethods([
|
|
'setStockCheckStatus',
|
|
'initFromOrderArticle',
|
|
'setPrice',
|
|
'setWrapping',
|
|
'setBundle',
|
|
'd3OrderManagerChangeOrderArticle2RealArticle',
|
|
])
|
|
->getMock();
|
|
$oBasketItemMock->method('setStockCheckStatus')->willReturn(true);
|
|
$oBasketItemMock->expects($this->never())->method('initFromOrderArticle')->willReturn(true);
|
|
$oBasketItemMock->expects($this->never())->method('setPrice')->willReturn(true);
|
|
$oBasketItemMock->method('setWrapping')->willReturn(true);
|
|
$oBasketItemMock->method('setBundle')->willReturn(true);
|
|
$oBasketItemMock->expects($this->never())->method('d3OrderManagerChangeOrderArticle2RealArticle');
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'd3getOrderManagerBasketItemInstance',
|
|
'onUpdate',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3getOrderManagerBasketItemInstance')->willReturn($oBasketItemMock);
|
|
$oModelMock->expects($this->never())->method('onUpdate')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->callMethod($this->_oModel, 'addOrderArticleToBasket4OrderManager', [$oOrderArticleMock]);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::calculateBasket4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function calculateBasket4OrderManagerCanStartedEnabledAndUpdateNeededAndUnforced()
|
|
{
|
|
$oOrder = d3GetOxidDIC()->get('d3ox.ordermanager.'.Order::class);
|
|
|
|
/** @var Session|MockObject $oBasketReservationMock */
|
|
$oBasketReservationMock = $this->getMockBuilder(Session::class)
|
|
->addMethods(['reserveBasket'])
|
|
->getMock();
|
|
$oBasketReservationMock->expects($this->once())->method('reserveBasket')->willReturn(true);
|
|
|
|
/** @var Session|MockObject $oSessionMock */
|
|
$oSessionMock = $this->getMockBuilder(Session::class)
|
|
->onlyMethods(['getBasketReservations'])
|
|
->getMock();
|
|
$oSessionMock->method('getBasketReservations')->willReturn($oBasketReservationMock);
|
|
|
|
/** @var Config|MockObject $oConfigMock */
|
|
$oConfigMock = $this->getMockBuilder(Config::class)
|
|
->onlyMethods(['getConfigParam'])
|
|
->getMock();
|
|
$oConfigMock->method('getConfigParam')->willReturn(true);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods(['setBruttoPriceMode'])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'isEnabled',
|
|
'd3GetOrderManagerPriceObject',
|
|
'save',
|
|
'clearBundles',
|
|
'addBundles',
|
|
'd3GetOrderManagerConfig',
|
|
'd3GetOrderManagerSession',
|
|
'_calcItemsPrice4OrderManager',
|
|
'_calcBasketDiscount4OrderManager',
|
|
'calcBasketTotalDiscount',
|
|
'calcVoucherDiscount',
|
|
'applyDiscounts',
|
|
'setCost',
|
|
'calcDeliveryCost',
|
|
'calcBasketWrapping',
|
|
'_calcPaymentCost4OrderManager',
|
|
'calcTotalPrice',
|
|
'formatDiscount',
|
|
'afterUpdate',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('isEnabled')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
$oModelMock->expects($this->once())->method('save')->willReturn(true);
|
|
$oModelMock->method('clearBundles')->willReturn(true);
|
|
$oModelMock->method('addBundles')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerConfig')->willReturn($oConfigMock);
|
|
$oModelMock->method('d3GetOrderManagerSession')->willReturn($oSessionMock);
|
|
$oModelMock->method('_calcItemsPrice4OrderManager')->willReturn(true);
|
|
$oModelMock->method('_calcBasketDiscount4OrderManager')->willReturn(true);
|
|
$oModelMock->method('calcBasketTotalDiscount')->willReturn(true);
|
|
$oModelMock->method('calcVoucherDiscount')->willReturn(true);
|
|
$oModelMock->method('applyDiscounts')->willReturn(true);
|
|
$oModelMock->method('setCost')->willReturn(true);
|
|
$oModelMock->method('calcDeliveryCost')->willReturn(true);
|
|
$oModelMock->method('calcBasketWrapping')->willReturn(true);
|
|
$oModelMock->method('_calcPaymentCost4OrderManager')->willReturn(oxNew(Price::class));
|
|
$oModelMock->expects($this->once())->method('calcTotalPrice')->willReturn(true);
|
|
$oModelMock->method('formatDiscount')->willReturn(true);
|
|
$oModelMock->method('afterUpdate')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_blUpdateNeeded',
|
|
true
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'calculateBasket4OrderManager',
|
|
[false, $oOrder]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::calculateBasket4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function calculateBasket4OrderManagerCanStartedDisabled()
|
|
{
|
|
$oOrder = d3GetOxidDIC()->get('d3ox.ordermanager.'.Order::class);
|
|
|
|
/** @var Session|MockObject $oBasketReservationMock */
|
|
$oBasketReservationMock = $this->getMockBuilder(Session::class)
|
|
->addMethods(['reserveBasket'])
|
|
->getMock();
|
|
$oBasketReservationMock->expects($this->never())->method('reserveBasket')->willReturn(true);
|
|
|
|
/** @var Session|MockObject $oSessionMock */
|
|
$oSessionMock = $this->getMockBuilder(Session::class)
|
|
->onlyMethods(['getBasketReservations'])
|
|
->getMock();
|
|
$oSessionMock->method('getBasketReservations')->willReturn($oBasketReservationMock);
|
|
|
|
/** @var Config|MockObject $oConfigMock */
|
|
$oConfigMock = $this->getMockBuilder(Config::class)
|
|
->onlyMethods(['getConfigParam'])
|
|
->getMock();
|
|
$oConfigMock->method('getConfigParam')->willReturn(true);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods(['setBruttoPriceMode'])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'isEnabled',
|
|
'd3GetOrderManagerPriceObject',
|
|
'save',
|
|
'clearBundles',
|
|
'addBundles',
|
|
'd3GetOrderManagerConfig',
|
|
'd3GetOrderManagerSession',
|
|
'_calcItemsPrice4OrderManager',
|
|
'_calcBasketDiscount4OrderManager',
|
|
'calcBasketTotalDiscount',
|
|
'calcVoucherDiscount',
|
|
'applyDiscounts',
|
|
'setCost',
|
|
'calcDeliveryCost',
|
|
'calcBasketWrapping',
|
|
'_calcPaymentCost4OrderManager',
|
|
'calcTotalPrice',
|
|
'formatDiscount',
|
|
'afterUpdate',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('isEnabled')->willReturn(false);
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
$oModelMock->expects($this->never())->method('save')->willReturn(true);
|
|
$oModelMock->method('clearBundles')->willReturn(true);
|
|
$oModelMock->method('addBundles')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerConfig')->willReturn($oConfigMock);
|
|
$oModelMock->method('d3GetOrderManagerSession')->willReturn($oSessionMock);
|
|
$oModelMock->method('_calcItemsPrice4OrderManager')->willReturn(true);
|
|
$oModelMock->method('_calcBasketDiscount4OrderManager')->willReturn(true);
|
|
$oModelMock->method('calcBasketTotalDiscount')->willReturn(true);
|
|
$oModelMock->method('calcVoucherDiscount')->willReturn(true);
|
|
$oModelMock->method('applyDiscounts')->willReturn(true);
|
|
$oModelMock->method('setCost')->willReturn(true);
|
|
$oModelMock->method('calcDeliveryCost')->willReturn(true);
|
|
$oModelMock->method('calcBasketWrapping')->willReturn(true);
|
|
$oModelMock->method('_calcPaymentCost4OrderManager')->willReturn(oxNew(Price::class));
|
|
$oModelMock->expects($this->never())->method('calcTotalPrice')->willReturn(true);
|
|
$oModelMock->method('formatDiscount')->willReturn(true);
|
|
$oModelMock->method('afterUpdate')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_blUpdateNeeded',
|
|
true
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'calculateBasket4OrderManager',
|
|
[false, $oOrder]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::calculateBasket4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function calculateBasket4OrderManagerCanStartedNoUpdate()
|
|
{
|
|
$oOrder = d3GetOxidDIC()->get('d3ox.ordermanager.'.Order::class);
|
|
|
|
/** @var Session|MockObject $oBasketReservationMock */
|
|
$oBasketReservationMock = $this->getMockBuilder(Session::class)
|
|
->addMethods(['reserveBasket'])
|
|
->getMock();
|
|
$oBasketReservationMock->expects($this->never())->method('reserveBasket')->willReturn(true);
|
|
|
|
/** @var Session|MockObject $oSessionMock */
|
|
$oSessionMock = $this->getMockBuilder(Session::class)
|
|
->onlyMethods(['getBasketReservations'])
|
|
->getMock();
|
|
$oSessionMock->method('getBasketReservations')->willReturn($oBasketReservationMock);
|
|
|
|
/** @var Config|MockObject $oConfigMock */
|
|
$oConfigMock = $this->getMockBuilder(Config::class)
|
|
->onlyMethods(['getConfigParam'])
|
|
->getMock();
|
|
$oConfigMock->method('getConfigParam')->willReturn(true);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods(['setBruttoPriceMode'])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'isEnabled',
|
|
'd3GetOrderManagerPriceObject',
|
|
'save',
|
|
'clearBundles',
|
|
'addBundles',
|
|
'd3GetOrderManagerConfig',
|
|
'd3GetOrderManagerSession',
|
|
'_calcItemsPrice4OrderManager',
|
|
'_calcBasketDiscount4OrderManager',
|
|
'calcBasketTotalDiscount',
|
|
'calcVoucherDiscount',
|
|
'applyDiscounts',
|
|
'setCost',
|
|
'calcDeliveryCost',
|
|
'calcBasketWrapping',
|
|
'_calcPaymentCost4OrderManager',
|
|
'calcTotalPrice',
|
|
'formatDiscount',
|
|
'afterUpdate',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('isEnabled')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
$oModelMock->expects($this->never())->method('save')->willReturn(true);
|
|
$oModelMock->method('clearBundles')->willReturn(true);
|
|
$oModelMock->method('addBundles')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerConfig')->willReturn($oConfigMock);
|
|
$oModelMock->method('d3GetOrderManagerSession')->willReturn($oSessionMock);
|
|
$oModelMock->method('_calcItemsPrice4OrderManager')->willReturn(true);
|
|
$oModelMock->method('_calcBasketDiscount4OrderManager')->willReturn(true);
|
|
$oModelMock->method('calcBasketTotalDiscount')->willReturn(true);
|
|
$oModelMock->method('calcVoucherDiscount')->willReturn(true);
|
|
$oModelMock->method('applyDiscounts')->willReturn(true);
|
|
$oModelMock->method('setCost')->willReturn(true);
|
|
$oModelMock->method('calcDeliveryCost')->willReturn(true);
|
|
$oModelMock->method('calcBasketWrapping')->willReturn(true);
|
|
$oModelMock->method('_calcPaymentCost4OrderManager')->willReturn(oxNew(Price::class));
|
|
$oModelMock->expects($this->never())->method('calcTotalPrice')->willReturn(true);
|
|
$oModelMock->method('formatDiscount')->willReturn(true);
|
|
$oModelMock->method('afterUpdate')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_blUpdateNeeded',
|
|
false
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'calculateBasket4OrderManager',
|
|
[false, $oOrder]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::calculateBasket4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function calculateBasket4OrderManagerCanStartedNoUpdateForced()
|
|
{
|
|
$oOrder = d3GetOxidDIC()->get('d3ox.ordermanager.'.Order::class);
|
|
|
|
/** @var Session|MockObject $oBasketReservationMock */
|
|
$oBasketReservationMock = $this->getMockBuilder(Session::class)
|
|
->addMethods(['reserveBasket'])
|
|
->getMock();
|
|
$oBasketReservationMock->expects($this->never())->method('reserveBasket')->willReturn(true);
|
|
|
|
/** @var Session|MockObject $oSessionMock */
|
|
$oSessionMock = $this->getMockBuilder(Session::class)
|
|
->onlyMethods(['getBasketReservations'])
|
|
->getMock();
|
|
$oSessionMock->method('getBasketReservations')->willReturn($oBasketReservationMock);
|
|
|
|
/** @var Config|MockObject $oConfigMock */
|
|
$oConfigMock = $this->getMockBuilder(Config::class)
|
|
->onlyMethods(['getConfigParam'])
|
|
->getMock();
|
|
$oConfigMock->method('getConfigParam')->willReturn(false);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods(['setBruttoPriceMode'])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'isEnabled',
|
|
'd3GetOrderManagerPriceObject',
|
|
'save',
|
|
'clearBundles',
|
|
'addBundles',
|
|
'd3GetOrderManagerConfig',
|
|
'd3GetOrderManagerSession',
|
|
'_calcItemsPrice4OrderManager',
|
|
'_calcBasketDiscount4OrderManager',
|
|
'calcBasketTotalDiscount',
|
|
'calcVoucherDiscount',
|
|
'applyDiscounts',
|
|
'setCost',
|
|
'calcDeliveryCost',
|
|
'calcBasketWrapping',
|
|
'_calcPaymentCost4OrderManager',
|
|
'calcTotalPrice',
|
|
'formatDiscount',
|
|
'afterUpdate',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('isEnabled')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
$oModelMock->expects($this->once())->method('save')->willReturn(true);
|
|
$oModelMock->method('clearBundles')->willReturn(true);
|
|
$oModelMock->method('addBundles')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerConfig')->willReturn($oConfigMock);
|
|
$oModelMock->method('d3GetOrderManagerSession')->willReturn($oSessionMock);
|
|
$oModelMock->method('_calcItemsPrice4OrderManager')->willReturn(true);
|
|
$oModelMock->method('_calcBasketDiscount4OrderManager')->willReturn(true);
|
|
$oModelMock->method('calcBasketTotalDiscount')->willReturn(true);
|
|
$oModelMock->method('calcVoucherDiscount')->willReturn(true);
|
|
$oModelMock->method('applyDiscounts')->willReturn(true);
|
|
$oModelMock->method('setCost')->willReturn(true);
|
|
$oModelMock->method('calcDeliveryCost')->willReturn(true);
|
|
$oModelMock->method('calcBasketWrapping')->willReturn(true);
|
|
$oModelMock->method('_calcPaymentCost4OrderManager')->willReturn(oxNew(Price::class));
|
|
$oModelMock->expects($this->once())->method('calcTotalPrice')->willReturn(true);
|
|
$oModelMock->method('formatDiscount')->willReturn(true);
|
|
$oModelMock->method('afterUpdate')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_blUpdateNeeded',
|
|
false
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'calculateBasket4OrderManager',
|
|
[true, $oOrder]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3GetOrderManagerPriceList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3GetOrderManagerPriceListReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
PriceList::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetOrderManagerPriceList'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3GetOrderManagerDiscountList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3GetOrderManagerDiscountListReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
DiscountList::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetOrderManagerDiscountList'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::_calcItemsPrice4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canCalcItemsPrice4OrderManagerNoDiscountedArticleNoSkipDiscounts()
|
|
{
|
|
/** @var Discount|MockObject $oDiscountMock */
|
|
$oDiscountMock = $this->getMockBuilder(Discount::class)
|
|
->onlyMethods([
|
|
'getAddSum',
|
|
'getAddSumType',
|
|
])
|
|
->getMock();
|
|
$oDiscountMock->method('getAddSum')->willReturn(true);
|
|
$oDiscountMock->method('getAddSumType')->willReturn(true);
|
|
|
|
/** @var DiscountList|MockObject $oDiscountListMock */
|
|
$oDiscountListMock = $this->getMockBuilder(DiscountList::class)
|
|
->onlyMethods(['getBasketItemDiscounts'])
|
|
->getMock();
|
|
$oDiscountListMock->method('getBasketItemDiscounts')->willReturn([
|
|
'discNo1' => $oDiscountMock,
|
|
]);
|
|
|
|
/** @var Article|MockObject $oArticleMock */
|
|
$oArticleMock = $this->getMockBuilder(Article::class)
|
|
->onlyMethods(['skipDiscounts'])
|
|
->getMock();
|
|
$oArticleMock->method('skipDiscounts')->willReturn(false);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods([
|
|
'setBruttoPriceMode',
|
|
'setDiscount',
|
|
'calculateDiscount',
|
|
'multiply',
|
|
'getVat',
|
|
'getVatValue', ])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
$oPriceMock->expects($this->once())->method('setDiscount')->willReturn(true);
|
|
$oPriceMock->expects($this->once())->method('calculateDiscount')->willReturn(true);
|
|
$oPriceMock->method('multiply')->willReturn(true);
|
|
$oPriceMock->method('getVat')->willReturn(true);
|
|
$oPriceMock->method('getVatValue')->willReturn(true);
|
|
|
|
/** @var BasketItem|MockObject $oBasketItemMock */
|
|
$oBasketItemMock = $this->getMockBuilder(BasketItem::class)
|
|
->onlyMethods([
|
|
'isDiscountArticle',
|
|
'getArticle',
|
|
'isBundle',
|
|
'getUnitPrice',
|
|
'setRegularUnitPrice',
|
|
'setPrice',
|
|
'getPrice',
|
|
'setSkipDiscounts',
|
|
'getAmount',
|
|
])
|
|
->getMock();
|
|
$oBasketItemMock->method('isDiscountArticle')->willReturn(false);
|
|
$oBasketItemMock->method('getArticle')->willReturn($oArticleMock);
|
|
$oBasketItemMock->method('isBundle')->willReturn(false);
|
|
$oBasketItemMock->method('getUnitPrice')->willReturn($oPriceMock);
|
|
$oBasketItemMock->expects($this->once())->method('setRegularUnitPrice')->willReturn(true);
|
|
$oBasketItemMock->method('setPrice')->willReturn(true);
|
|
$oBasketItemMock->method('getPrice')->willReturn(true);
|
|
$oBasketItemMock->method('setSkipDiscounts')->willReturn(true);
|
|
$oBasketItemMock->method('getAmount')->willReturn(true);
|
|
|
|
/** @var PriceList|MockObject $oPriceListMock */
|
|
$oPriceListMock = $this->getMockBuilder(PriceList::class)
|
|
->onlyMethods(['addToPriceList'])
|
|
->getMock();
|
|
$oPriceListMock->expects($this->exactly(2))->method('addToPriceList')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'setSkipDiscounts',
|
|
'd3GetOrderManagerPriceList',
|
|
'canCalcDiscounts',
|
|
'd3GetOrderManagerDiscountList',
|
|
'getBasketUser',
|
|
'd3GetOrderManagerPriceObject',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('setSkipDiscounts')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceList')->willReturn($oPriceListMock);
|
|
$oModelMock->method('canCalcDiscounts')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerDiscountList')->willReturn($oDiscountListMock);
|
|
$oModelMock->method('getBasketUser')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_aBasketContents',
|
|
[
|
|
'itemNo1' => $oBasketItemMock,
|
|
]
|
|
);
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_oProductsPriceList',
|
|
$oPriceListMock
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'_calcItemsPrice4OrderManager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::_calcItemsPrice4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canCalcItemsPrice4OrderManagerNoDiscountedArticleSkipDiscounts()
|
|
{
|
|
/** @var Discount|MockObject $oDiscountMock */
|
|
$oDiscountMock = $this->getMockBuilder(Discount::class)
|
|
->onlyMethods([
|
|
'getAddSum',
|
|
'getAddSumType',
|
|
])
|
|
->getMock();
|
|
$oDiscountMock->method('getAddSum')->willReturn(true);
|
|
$oDiscountMock->method('getAddSumType')->willReturn(true);
|
|
|
|
/** @var DiscountList|MockObject $oDiscountListMock */
|
|
$oDiscountListMock = $this->getMockBuilder(DiscountList::class)
|
|
->onlyMethods(['getBasketItemDiscounts'])
|
|
->getMock();
|
|
$oDiscountListMock->method('getBasketItemDiscounts')->willReturn([
|
|
'discNo1' => $oDiscountMock,
|
|
]);
|
|
|
|
/** @var Article|MockObject $oArticleMock */
|
|
$oArticleMock = $this->getMockBuilder(Article::class)
|
|
->onlyMethods(['skipDiscounts'])
|
|
->getMock();
|
|
$oArticleMock->method('skipDiscounts')->willReturn(true);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods([
|
|
'setBruttoPriceMode',
|
|
'setDiscount',
|
|
'calculateDiscount',
|
|
'multiply',
|
|
'getVat',
|
|
'getVatValue',
|
|
])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
$oPriceMock->method('setDiscount')->willReturn(true);
|
|
$oPriceMock->expects($this->never())->method('calculateDiscount')->willReturn(true);
|
|
$oPriceMock->method('multiply')->willReturn(true);
|
|
$oPriceMock->method('getVat')->willReturn(true);
|
|
$oPriceMock->method('getVatValue')->willReturn(true);
|
|
|
|
/** @var BasketItem|MockObject $oBasketItemMock */
|
|
$oBasketItemMock = $this->getMockBuilder(BasketItem::class)
|
|
->onlyMethods([
|
|
'isDiscountArticle',
|
|
'getArticle',
|
|
'isBundle',
|
|
'getUnitPrice',
|
|
'setRegularUnitPrice',
|
|
'setPrice',
|
|
'getPrice',
|
|
'setSkipDiscounts',
|
|
'getAmount',
|
|
])
|
|
->getMock();
|
|
$oBasketItemMock->method('isDiscountArticle')->willReturn(false);
|
|
$oBasketItemMock->method('getArticle')->willReturn($oArticleMock);
|
|
$oBasketItemMock->method('isBundle')->willReturn(false);
|
|
$oBasketItemMock->method('getUnitPrice')->willReturn($oPriceMock);
|
|
$oBasketItemMock->expects($this->once())->method('setRegularUnitPrice')->willReturn(true);
|
|
$oBasketItemMock->method('setPrice')->willReturn(true);
|
|
$oBasketItemMock->method('getPrice')->willReturn(true);
|
|
$oBasketItemMock->method('setSkipDiscounts')->willReturn(true);
|
|
$oBasketItemMock->method('getAmount')->willReturn(true);
|
|
|
|
/** @var PriceList|MockObject $oPriceListMock */
|
|
$oPriceListMock = $this->getMockBuilder(PriceList::class)
|
|
->onlyMethods(['addToPriceList'])
|
|
->getMock();
|
|
$oPriceListMock->expects($this->exactly(2))->method('addToPriceList')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'setSkipDiscounts',
|
|
'd3GetOrderManagerPriceList',
|
|
'canCalcDiscounts',
|
|
'd3GetOrderManagerDiscountList',
|
|
'getBasketUser',
|
|
'd3GetOrderManagerPriceObject',
|
|
])
|
|
->getMock();
|
|
$oModelMock->expects($this->exactly(3))->method('setSkipDiscounts')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceList')->willReturn($oPriceListMock);
|
|
$oModelMock->method('canCalcDiscounts')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerDiscountList')->willReturn($oDiscountListMock);
|
|
$oModelMock->method('getBasketUser')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_aBasketContents',
|
|
[
|
|
'itemNo1' => $oBasketItemMock,
|
|
]
|
|
);
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_oProductsPriceList',
|
|
$oPriceListMock
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'_calcItemsPrice4OrderManager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::_calcItemsPrice4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canCalcItemsPrice4OrderManagerBundle()
|
|
{
|
|
/** @var Discount|MockObject $oDiscountMock */
|
|
$oDiscountMock = $this->getMockBuilder(Discount::class)
|
|
->onlyMethods([
|
|
'getAddSum',
|
|
'getAddSumType',
|
|
])
|
|
->getMock();
|
|
$oDiscountMock->method('getAddSum')->willReturn(true);
|
|
$oDiscountMock->method('getAddSumType')->willReturn(true);
|
|
|
|
/** @var DiscountList|MockObject $oDiscountListMock */
|
|
$oDiscountListMock = $this->getMockBuilder(DiscountList::class)
|
|
->onlyMethods(['getBasketItemDiscounts'])
|
|
->getMock();
|
|
$oDiscountListMock->method('getBasketItemDiscounts')->willReturn([
|
|
'discNo1' => $oDiscountMock,
|
|
]);
|
|
|
|
/** @var Article|MockObject $oArticleMock */
|
|
$oArticleMock = $this->getMockBuilder(Article::class)
|
|
->onlyMethods(['skipDiscounts'])
|
|
->getMock();
|
|
$oArticleMock->method('skipDiscounts')->willReturn(true);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods([
|
|
'setBruttoPriceMode',
|
|
'setDiscount',
|
|
'calculateDiscount',
|
|
'multiply',
|
|
'getVat',
|
|
'getVatValue',
|
|
])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
$oPriceMock->expects($this->never())->method('setDiscount')->willReturn(true);
|
|
$oPriceMock->expects($this->never())->method('calculateDiscount')->willReturn(true);
|
|
$oPriceMock->method('multiply')->willReturn(true);
|
|
$oPriceMock->method('getVat')->willReturn(true);
|
|
$oPriceMock->method('getVatValue')->willReturn(true);
|
|
|
|
/** @var BasketItem|MockObject $oBasketItemMock */
|
|
$oBasketItemMock = $this->getMockBuilder(BasketItem::class)
|
|
->onlyMethods([
|
|
'isDiscountArticle',
|
|
'getArticle',
|
|
'isBundle',
|
|
'getUnitPrice',
|
|
'setRegularUnitPrice',
|
|
'setPrice',
|
|
'getPrice',
|
|
'setSkipDiscounts',
|
|
'getAmount',
|
|
])
|
|
->getMock();
|
|
$oBasketItemMock->method('isDiscountArticle')->willReturn(true);
|
|
$oBasketItemMock->method('getArticle')->willReturn($oArticleMock);
|
|
$oBasketItemMock->method('isBundle')->willReturn(true);
|
|
$oBasketItemMock->method('getUnitPrice')->willReturn($oPriceMock);
|
|
$oBasketItemMock->expects($this->never())->method('setRegularUnitPrice')->willReturn(true);
|
|
$oBasketItemMock->expects($this->once())->method('setPrice')->willReturn(true);
|
|
$oBasketItemMock->method('getPrice')->willReturn(true);
|
|
$oBasketItemMock->method('setSkipDiscounts')->willReturn(true);
|
|
$oBasketItemMock->method('getAmount')->willReturn(true);
|
|
|
|
/** @var PriceList|MockObject $oPriceListMock */
|
|
$oPriceListMock = $this->getMockBuilder(PriceList::class)
|
|
->onlyMethods(['addToPriceList'])
|
|
->getMock();
|
|
$oPriceListMock->expects($this->never())->method('addToPriceList')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods([
|
|
'setSkipDiscounts',
|
|
'd3GetOrderManagerPriceList',
|
|
'canCalcDiscounts',
|
|
'd3GetOrderManagerDiscountList',
|
|
'getBasketUser',
|
|
'd3GetOrderManagerPriceObject',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('setSkipDiscounts')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceList')->willReturn($oPriceListMock);
|
|
$oModelMock->method('canCalcDiscounts')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerDiscountList')->willReturn($oDiscountListMock);
|
|
$oModelMock->method('getBasketUser')->willReturn(true);
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_aBasketContents',
|
|
[
|
|
'itemNo1' => $oBasketItemMock,
|
|
]
|
|
);
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'_oProductsPriceList',
|
|
$oPriceListMock
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'_calcItemsPrice4OrderManager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3GetOrderManagerPriceObject
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3GetOrderManagerPriceObjectReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Price::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetOrderManagerPriceObject'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::_calcPaymentCost4OrderManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canCalcPaymentCost4OrderManager()
|
|
{
|
|
/** @var d3_oxorder_ordermanager|MockObject $oOrderMock */
|
|
$oOrderMock = $this->getMockBuilder(Order::class)
|
|
->onlyMethods(['getFieldData'])
|
|
->getMock();
|
|
$map = [['oxpaycost', 123.45]];
|
|
$oOrderMock->method('getFieldData')->willReturnMap($map);
|
|
|
|
/** @var Price|MockObject $oPriceMock */
|
|
$oPriceMock = $this->getMockBuilder(Price::class)
|
|
->onlyMethods([
|
|
'setBruttoPriceMode',
|
|
'setPrice',
|
|
])
|
|
->getMock();
|
|
$oPriceMock->method('setBruttoPriceMode')->willReturn(true);
|
|
$oPriceMock->method('setPrice')->willReturn(true);
|
|
|
|
/** @var d3_oxbasket_ordermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Basket::class)
|
|
->onlyMethods(['d3GetOrderManagerPriceObject'])
|
|
->getMock();
|
|
$oModelMock->method('d3GetOrderManagerPriceObject')->willReturn($oPriceMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertInstanceOf(
|
|
Price::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'_calcPaymentCost4OrderManager',
|
|
[$oOrderMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::_calcBasketDiscount4OrderManager
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3GetOrderManagerDiscountedVats
|
|
* @covers \D3\Ordermanager\Modules\Application\Model\d3_oxbasket_ordermanager::d3GetOrderManagerDiscounts
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function calcBasketDiscount4OrderManagerPass()
|
|
{
|
|
$oOrder = d3GetOxidDIC()->get('d3ox.ordermanager.'.Order::class);
|
|
$oOrder->assign([
|
|
'oxorderdate' => '2022-02-02 02:02:22',
|
|
'oxsenddate' => '2022-02-02 02:02:22',
|
|
'oxdiscount' => 3.75,
|
|
]);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'_calcBasketDiscount4OrderManager',
|
|
[$oOrder]
|
|
);
|
|
|
|
$aDiscounts = $this->callMethod($this->_oModel, 'd3GetOrderManagerDiscounts');
|
|
$this->assertIsArray($aDiscounts);
|
|
$this->assertCount(1, $aDiscounts);
|
|
$aDiscountedVats = $this->callMethod($this->_oModel, 'd3GetOrderManagerDiscountedVats');
|
|
$this->assertIsArray($aDiscountedVats);
|
|
$this->assertCount(1, $aDiscountedVats);
|
|
}
|
|
|
|
/**
|
|
* @param $sLicenseKey
|
|
* @param d3ordermanager $oManager
|
|
* @return null
|
|
*/
|
|
protected function _setModuleLicenseKey($sLicenseKey, $oManager = null)
|
|
{
|
|
return null;
|
|
}
|
|
}
|