![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-catalog/Test/Unit/Model/Product/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Catalog\Test\Unit\Model\Product; use Magento\Catalog\Model\Product; use Magento\Catalog\Model\Product\PriceModifier; use Magento\Catalog\Model\ProductRepository; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class PriceModifierTest extends TestCase { /** * @var PriceModifier */ protected $priceModifier; /** * @var MockObject */ protected $productMock; /** * @var MockObject */ protected $productRepositoryMock; /** * @var array */ protected $prices = []; protected function setUp(): void { $this->productMock = $this->createPartialMock(Product::class, ['getData', 'setData']); $this->productRepositoryMock = $this->createMock(ProductRepository::class); $this->priceModifier = new PriceModifier( $this->productRepositoryMock ); $this->prices = [ 0 => [ 'all_groups' => 0, 'cust_group' => 1, 'price_qty' => 15, 'website_id' => 1, ], 1 => [ 'all_groups' => 1, 'cust_group' => 0, 'price_qty' => 10, 'website_id' => 1, ], ]; } public function testRemoveWhenTierPricesNotExists() { $this->expectException('Magento\Framework\Exception\NoSuchEntityException'); $this->expectExceptionMessage( 'Product hasn\'t group price with such data: customerGroupId = \'1\', website = 1, qty = 3' ); $this->productMock ->expects($this->once()) ->method('getData') ->with('tier_price') ->willReturn([]); $this->productMock->expects($this->never())->method('setData'); $this->productRepositoryMock->expects($this->never())->method('save'); $this->priceModifier->removeTierPrice($this->productMock, 1, 3, 1); } public function testRemoveTierPriceForNonExistingCustomerGroup() { $this->expectException('Magento\Framework\Exception\NoSuchEntityException'); $this->expectExceptionMessage( 'Product hasn\'t group price with such data: customerGroupId = \'10\', website = 1, qty = 5' ); $this->productMock ->expects($this->once()) ->method('getData') ->with('tier_price') ->willReturn($this->prices); $this->productMock->expects($this->never())->method('setData'); $this->productRepositoryMock->expects($this->never())->method('save'); $this->priceModifier->removeTierPrice($this->productMock, 10, 5, 1); } public function testSuccessfullyRemoveTierPriceSpecifiedForAllGroups() { $this->productMock ->expects($this->once()) ->method('getData') ->with('tier_price') ->willReturn($this->prices); $expectedPrices = [$this->prices[0]]; $this->productMock->expects($this->once())->method('setData')->with('tier_price', $expectedPrices); $this->productRepositoryMock->expects($this->once())->method('save')->with($this->productMock); $this->priceModifier->removeTierPrice($this->productMock, 'all', 10, 1); } public function testSuccessfullyRemoveTierPriceSpecifiedForSpecificGroups() { $this->productMock ->expects($this->once()) ->method('getData') ->with('tier_price') ->willReturn($this->prices); $expectedPrices = [1 => $this->prices[1]]; $this->productMock->expects($this->once())->method('setData')->with('tier_price', $expectedPrices); $this->productRepositoryMock->expects($this->once())->method('save')->with($this->productMock); $this->priceModifier->removeTierPrice($this->productMock, 1, 15, 1); } }