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/wbs24.ozonexport/tests/unit/ |
Upload File : |
<?php namespace Wbs24\Ozonexport; use Bitrix\Main\Loader; class AdminTest extends BitrixTestCase { public function testGetSelectForPriceTypes() { Loader::includeModule('iblock'); Loader::includeModule('catalog'); // входные параметры $iblockId = 1; $field = 'SET_OFFER_ID'; $currentValue = 'ARTNUMBER'; // результат для проверки $expectedResult = '<select class="select_price_type" name="BLOB[priceType]">' .'<option value="">Default</option>' .'<option value="1">[1] (Base)</option>' .'<option value="2" selected>[2] Recommend price (Recommend)</option>' .'<option value="-1"></option>' .'</select>' ; // заглушка $CIBlockResultStub = $this->createMock(\CIBlockResult::class); $fetchResults[] = [ 'ID' => 1, 'NAME_LANG' => '', 'NAME' => 'Base', ]; $fetchResults[] = [ 'ID' => 2, 'NAME_LANG' => 'Recommend price', 'NAME' => 'Recommend', ]; $fetchResults[] = false; $CIBlockResultStub->method('Fetch') ->will($this->onConsecutiveCalls(...$fetchResults)); $CCatalogGroupStub = $this->createMock(CCatalogGroup::class); $CCatalogGroupStub->method('GetListEx') ->willReturn($CIBlockResultStub); // вычисление результата $admin = new Admin([ 'objects' => [ 'CCatalogGroup' => $CCatalogGroupStub, ], ]); $result = $admin->getSelectForPriceTypes(2, 'Default'); // проверка $this->assertEquals($expectedResult, $result); } public function testGetSelectForOfferId() { Loader::includeModule('iblock'); // входные параметры $iblockId = 1; $field = 'SET_OFFER_ID'; $currentValue = 'ARTNUMBER'; // результат для проверки $expectedResult = '<select id="set_offer_id" name="SET_OFFER_ID">' .'<option value="ID" data-selected="N">ID</option>' .'<option value="XML_ID" data-selected="N">XML_ID (Внешний код)</option>' .'<option data-iblock-id="2" value="ARTNUMBER" selected data-selected="Y">Артикул</option>' .'</select>' .'<script>document.addEventListener("DOMContentLoaded", function () {let ozon = new Wbs24Ozonexport();ozon.activateOptionsForCurrentIblock("SET_OFFER_ID", 2);});</script>' ; // заглушка $CCatalogStub = $this->createMock(CCatalog::class); $CCatalogStub->method('GetByIDExt') ->willReturn([ 'OFFERS_IBLOCK_ID' => 2, ]); $CIBlockResultStub = $this->createMock(\CIBlockResult::class); $fetchResults[] = [ 'ID' => 3, 'NAME' => 'Артикул', 'CODE' => 'ARTNUMBER', 'IBLOCK_ID' => 2, 'PROPERTY_TYPE' => 'S', ]; $fetchResults[] = false; $CIBlockResultStub->method('Fetch') ->will($this->onConsecutiveCalls(...$fetchResults)); $CIBlockPropertyStub = $this->createMock(CIBlockProperty::class); $CIBlockPropertyStub->method('GetList') ->willReturn($CIBlockResultStub); // вычисление результата $admin = new Admin([ 'objects' => [ 'CCatalog' => $CCatalogStub, 'CIBlockProperty' => $CIBlockPropertyStub, ], ]); $result = $admin->getSelectForOfferId($iblockId, $field, $currentValue); // проверка $this->assertEquals($expectedResult, $result); } public function testGetPriceMarksToLang() { Loader::includeModule('iblock'); Loader::includeModule('catalog'); // входные параметры // результат для проверки $expectedResult = [ 'PRICE_1' => '[1] Base', 'PRICE_2' => '[2] Recommend - Recommend price', ]; // заглушка $CIBlockResultStub = $this->createMock(\CIBlockResult::class); $fetchResults[] = [ 'ID' => 1, 'NAME_LANG' => '', 'NAME' => 'Base', ]; $fetchResults[] = [ 'ID' => 2, 'NAME_LANG' => 'Recommend price', 'NAME' => 'Recommend', ]; $fetchResults[] = false; $CIBlockResultStub->method('Fetch') ->will($this->onConsecutiveCalls(...$fetchResults)); $CCatalogGroupStub = $this->createMock(CCatalogGroup::class); $CCatalogGroupStub->method('GetListEx') ->willReturn($CIBlockResultStub); // вычисление результата $admin = new Admin([ 'objects' => [ 'CCatalogGroup' => $CCatalogGroupStub, ], ]); $result = $admin->getPriceMarksToLang(); // проверка $this->assertEquals($expectedResult, $result); } }