<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Statistiky\Tests\Unit\Entities\Import\Casts;

use Seka\Portal\Modul\Statistiky\Entities\Import\Casts\SuborCast;
use Seka\Portal\Modul\Statistiky\Entities\Import\Import;
use Seka\Portal\Modul\Statistiky\Entities\Import\ValueObjects\Subor;
use Seka\Portal\Modul\Statistiky\Tests\TestCase;

/**
 *
 */
class SuborCastTest extends TestCase
{
    /**
     *
     */
    public function testInstance()
    {
        $suborCast = new SuborCast('', '', '', '');

        self::assertInstanceOf(SuborCast::class, $suborCast);
    }

    /**
     *
     */
    public function testGet()
    {
        $suborCast = new SuborCast('subor_nazov', 'subor_povodne_umiestnenie', 'subor_presunuty_do', 'subor_velkost');

        $subor = $suborCast->get(
            new Import(),
            '',
            '',
            [
                'subor_nazov' => 'test_subor_nazov',
                'subor_povodne_umiestnenie' => 'test_subor_povodne_umiestnenie',
                'subor_presunuty_do' => 'test_subor_presunuty_do',
                'subor_velkost' => 'test_subor_velkost',
            ]
        );

        self::assertInstanceOf(Subor::class, $subor);
    }

    /**
     *
     */
    public function testSet()
    {
        $suborCast = new SuborCast('subor_nazov', 'subor_povodne_umiestnenie', 'subor_presunuty_do', 'subor_velkost');

        $arr = $suborCast->set(
            new Import(),
            '',
            new Subor('subor_nazov', 'subor_povodne_umiestnenie', 'subor_presunuty_do', 0),
            []
        );

        self::assertIsArray($arr);
        self::assertArrayHasKey('subor_nazov', $arr);
        self::assertArrayHasKey('subor_povodne_umiestnenie', $arr);
        self::assertArrayHasKey('subor_presunuty_do', $arr);
        self::assertArrayHasKey('subor_velkost', $arr);
    }
}
