<?php

declare(strict_types=1);

namespace App\Tests\Unit\Administration\Domain\Model\HomeworkRules;

use App\Administration\Domain\Model\HomeworkRules\EnforcementMode;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;

final class EnforcementModeTest extends TestCase
{
    #[Test]
    public function softEstActif(): void
    {
        self::assertTrue(EnforcementMode::SOFT->estActif());
    }

    #[Test]
    public function hardEstActif(): void
    {
        self::assertTrue(EnforcementMode::HARD->estActif());
    }

    #[Test]
    public function disabledEstPasActif(): void
    {
        self::assertFalse(EnforcementMode::DISABLED->estActif());
    }

    #[Test]
    public function softEstPasBloquant(): void
    {
        self::assertFalse(EnforcementMode::SOFT->estBloquant());
    }

    #[Test]
    public function hardEstBloquant(): void
    {
        self::assertTrue(EnforcementMode::HARD->estBloquant());
    }

    #[Test]
    public function disabledEstPasBloquant(): void
    {
        self::assertFalse(EnforcementMode::DISABLED->estBloquant());
    }

    #[Test]
    public function labelsAreFrench(): void
    {
        self::assertSame('Avertissement', EnforcementMode::SOFT->label());
        self::assertSame('Blocage', EnforcementMode::HARD->label());
        self::assertSame('Désactivé', EnforcementMode::DISABLED->label());
    }
}
