<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Statistiky\Tests\Unit\Entities\Zaznam\Enums;

use Seka\Portal\Modul\Statistiky\Entities\Zaznam\Enums\DruhEmisnejKontrolyEnum;
use Seka\Portal\Modul\Statistiky\Tests\TestCase;

/**
 * Class DruhEmisnejKontrolyEnumTest
 *
 * @package Seka\Portal\Modul\Statistiky\Tests\Unit\Entities\Zaznam\Enums
 */
class DruhEmisnejKontrolyEnumTest extends TestCase
{
    /**
     *
     */
    public function testZVLASTNA()
    {
        $this->testing('ZVLASTNA');
    }

    /**
     *
     */
    public function testPRAVIDELNA()
    {
        $this->testing('PRAVIDELNA');
    }

    /**
     *
     */
    public function testOPAKOVANA_PRAVIDELNA()
    {
        $this->testing('OPAKOVANA_PRAVIDELNA');
    }

    /**
     *
     */
    public function testADMINISTRATIVNA_MIMO_LEHOTY()
    {
        $this->testing('ADMINISTRATIVNA_MIMO_LEHOTY');
    }

    /**
     *
     */
    public function testADMINISTRATIVNA_POCAS_LEHOTY()
    {
        $this->testing('ADMINISTRATIVNA_POCAS_LEHOTY');
    }

    /**
     *
     */
    public function testOPAKOVANA_ADMINISTRATIVNA_MIMO_LEHOTY()
    {
        $this->testing('OPAKOVANA_ADMINISTRATIVNA_MIMO_LEHOTY');
    }

    /**
     *
     */
    public function testPocetDruhovEmisnychKontrol()
    {
        self::assertCount(7, DruhEmisnejKontrolyEnum::toValues());
    }

    /**
     * @param string $value
     */
    private function testing(string $value)
    {
        self::assertStringEndsWith($value, DruhEmisnejKontrolyEnum::$value()->value);
        self::assertStringStartsWith($value, DruhEmisnejKontrolyEnum::$value()->value);
        self::assertTrue(DruhEmisnejKontrolyEnum::$value()->equals(DruhEmisnejKontrolyEnum::from($value)));
    }
}
