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/cvetdv.ru/bitrix/modules/wbs24.ozonexport/tests/unit/ |
Upload File : |
<?php namespace Wbs24\Ozonexport; use Bitrix\Main\Loader; class FilterTest extends BitrixTestCase { public function testGetNeededPropertyIds() { // входные параметры $filter = "(((isset(\$element['PROPERTY_5_VALUE']) && in_array(58885, \$element['PROPERTY_5_VALUE'])) && (isset(\$element['PROPERTY_32_VALUE']) && CGlobalCondCtrl::LogicContain(\$element['PROPERTY_32_VALUE'], \"100\"))))"; // результат для проверки $expectedResult = [5, 32]; // заглушка // вычисление результата // вызов protected метода $method = $this->getMethod('Wbs24\\Ozonexport\\Filter', 'getNeededPropertyIds'); $object = new Filter(); $result = $method->invokeArgs($object, [$filter]); // проверка $this->assertEquals($expectedResult, $result); } public function testIsAllPropertiesReady() { // входные параметры $element = [ 'PROPERTY_1_VALUE' => 'a', 'PROPERTY_2_VALUE' => 'b', ]; $propertyIdsArray = [ [1, 2], [1, 3], ]; // результат для проверки $expectedResultArray = [true, false]; // заглушка // обход входных параметров foreach ($propertyIdsArray as $k => $propertyIds) { // вычисление результата // вызов protected метода $method = $this->getMethod('Wbs24\\Ozonexport\\Filter', 'isAllPropertiesReady'); $object = new Filter(); $result = $method->invokeArgs($object, [$element, $propertyIds]); // проверка $this->assertEquals($expectedResultArray[$k], $result); } } public function testMergeProperties() { // входные параметры $element = [ 'ID' => 100, 'PROPERTY_1_VALUE' => 'a', 'PROPERTY_2_VALUE' => 'b', ]; $parent = [ 'ID' => 1, 'PROPERTY_11_VALUE' => 'c', 'PROPERTY_12_VALUE' => 'd', ]; // результат для проверки $expectedResult = [ 'ID' => 100, 'PROPERTY_1_VALUE' => 'a', 'PROPERTY_2_VALUE' => 'b', 'PROPERTY_11_VALUE' => 'c', 'PROPERTY_12_VALUE' => 'd', ]; // заглушка // вычисление результата // вызов protected метода $method = $this->getMethod('Wbs24\\Ozonexport\\Filter', 'mergeProperties'); $object = new Filter(); $result = $method->invokeArgs($object, [$element, $parent]); // проверка $this->assertEquals($expectedResult, $result); } public function testAddPropertiesToElement() { // входные параметры $element = [ 'ID' => 1, 'IBLOCK_ID' => 1, ]; // результат для проверки $expectedResult = [ 'ID' => 1, 'IBLOCK_ID' => 1, 'PROPERTY_100_VALUE' => [ 'a', 'b', ], 'PROPERTY_101_VALUE' => [ 'c', ], ]; // заглушка Loader::includeModule('iblock'); $CIBlockResultStub = $this->createMock(\CIBlockResult::class); $fetchResults = [ [ 'IBLOCK_ELEMENT_ID' => 1, 100 => [ 'a', 'b', ], 101 => 'c', ], false, ]; $CIBlockResultStub->method('Fetch') ->will($this->onConsecutiveCalls(...$fetchResults)); $CIBlockElementStub = $this->createMock(CIBlockElement::class); $CIBlockElementStub->method('GetPropertyValues') ->willReturn($CIBlockResultStub); // вычисление результата // вызов protected метода $method = $this->getMethod('Wbs24\\Ozonexport\\Filter', 'addPropertiesToElement'); $object = new Filter([ 'objects' => [ 'CIBlockElement' => $CIBlockElementStub, ], ]); $result = $method->invokeArgs($object, [$element]); // проверка $this->assertEquals($expectedResult, $result); } }