<?php

/**
* Class BitrixTestCase
*/
class BitrixTestCase extends \PHPUnit\Framework\TestCase
{
    /**
     * @var bool
     */
    protected $backupGlobals = false;
    
    /**
     * @var \Generator
     */
    protected $faker;
    
    /**
     * этот метод phpUnit вызывает перед запуском текущего теста
     * @inheritdoc
     */
    public function setUp(): void
    {
        // создание экземпляра Faker, который будет создавать рандомные данные
        $this->faker = \Faker\Factory::create();
    }
    
    /**
     * этот метод phpUnit вызывает после исполнения текущего теста
     * @inheritdoc
     */
    public function tearDown(): void
    {
        // без этого вызова Mockery не будет работать
        \Mockery::close();
    }

    public function getArFields(): array
    {
        return [
            'ID' => 1,
            'NUMBER' => "1",
            'USER_ID' => "1",
            'STATUS_ID' => "1",
            'PERSON_TYPE_ID' => 'bitrixType',
            'DATE_INSERT' => '2015-02-22 00:00:00',
            'USER_DESCRIPTION' => 'userComment',
            'COMMENTS' => 'managerComment',
            'PRICE_DELIVERY' => '100',
            'PROPS' => [
                'properties' => [
                    ['CODE' => 'FIO', 'VALUE' => ['FirstName LastName']],
                    ['ID' => 1, 'CODE' => 'TEST_PROP_1', 'VALUE' => ['test 1']],
                    ['ID' => 2, 'CODE' => 'TEST_PROP_2', 'VALUE' => ['test 2']]
                ]
            ],
            'DELIVERYS' => [[
                'id' => 'test',
                'service' => 'service'
            ]],
            'BASKET' => [],
            'PAYMENTS' => [[
                'ID' => 1,
                'PAY_SYSTEM_ID' => 1,
                'SUM' => 1000,
                'DATE_PAID' => $this->getDateTime(),
                'PAID' => 'Y'
            ]],
            'REASON_CANCELED' => 'test comment'
        ];
    }

    public function getDateTime(): \Bitrix\Main\Type\DateTime
    {
        return \Bitrix\Main\Type\DateTime::createFromPhp(new DateTime('2000-01-01'));
    }
}