Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/catalog/lib/v2/Tests/Unit/ |
Upload File : |
<?php namespace Bitrix\Catalog\v2\Tests\Unit; use Bitrix\Catalog\v2\IoC\Dependency; use Bitrix\Catalog\v2\Product\BaseProduct; use Bitrix\Catalog\v2\Tests\BaseTest; class ProductTest extends BaseTest { /** @var \Bitrix\Catalog\v2\Product\ProductFactory */ private static $factory; /** @var \Bitrix\Catalog\v2\Product\ProductRepositoryContract */ private static $repository; public static function setUpBeforeClass() : void { parent::setUpBeforeClass(); static::$factory = static::$container->make(Dependency::PRODUCT_FACTORY, ['iblockId' => 8]); static::$repository = static::$container->make(Dependency::PRODUCT_REPOSITORY, ['iblockId' => 8]); } protected function setUp() : void { } private function createNewProduct(): BaseProduct { return static::$factory->createEntity(static::$factory::PRODUCT); } private function loadExistingProduct(): BaseProduct { // ToDo mock it return static::$repository->getEntityById(509); } // ToDo remove temporary test for qcachegrind profiler public function testPerformanceOfCreation(): void { $products = []; foreach (range(0, 100) as $item) { $products[] = $this->createNewProduct(); } $this->assertCount(101, $products); } public function testChangeExistingProduct(): void { $product = $this->loadExistingProduct(); $previousValue = $product->getField('NAME'); $this->assertFalse($product->isChanged()); $product->setField('NAME', 'TEST'); $this->assertTrue($product->isChanged()); $product->setField('NAME', $previousValue); $this->assertFalse($product->isChanged()); } public function testChangeExistingProductAndSaveProduct(): void { $product = $this->loadExistingProduct(); $product->setField('NAME', 'TEST'); $product->save(); $this->assertFalse($product->isChanged()); $this->assertEquals('TEST', $product->getField('NAME')); } public function testChangeExistingProductVariantAndSaveProduct(): void { $product = $this->loadExistingProduct(); foreach ($product->getSkuCollection() as $sku) { $sku->setField('NAME', 'TEST'); $this->assertTrue($sku->isChanged()); $this->assertEquals('TEST', $sku->getField('NAME')); } $this->assertTrue($product->isChanged()); $this->assertTrue($product->getSkuCollection()->isChanged()); $product->save(); $this->assertFalse($product->isChanged()); $this->assertFalse($product->getSkuCollection()->isChanged()); foreach ($product->getSkuCollection() as $sku) { $this->assertFalse($sku->isChanged()); $this->assertEquals('TEST', $sku->getField('NAME')); } } public function testChangeExistingProductVariantAndSaveVariant(): void { $product = $this->loadExistingProduct(); foreach ($product->getSkuCollection() as $sku) { $sku->setField('NAME', 'TEST'); $sku->save(); $this->assertFalse($sku->isChanged()); $this->assertEquals('TEST', $sku->getField('NAME')); } $this->assertFalse($product->isChanged()); $this->assertFalse($product->getSkuCollection()->isChanged()); } }