403Webshell
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/rospirotorg.ru/bitrix/modules/wbs24.ozonexport/tests/unit/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/wbs24.ozonexport/tests/unit/FilterTest.php
<?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);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit