<?php

declare(strict_types=1);

namespace Modules\{{ module }}\Test;

use Core\CoreTestCase;
use Modules\{{ module }}\Logic\Actions\{{ action }}Action;
use Modules\{{ module }}\Logic\DTOs\{{ class }}DTO;
use PHPUnit\Framework\Attributes\Test;

/**
 * @intent Teste de comportamento da Action {{ action }}Action (módulo {{ module_lower }}).
 *
 * @description Política **vermelho→verde** (plano 02 / spec 08): escreva primeiro o teste que
 *              reproduz a regra de negócio (ELE DEVE FALHAR), depois implemente a Action até
 *              ficar verde. Substitua o `markTestIncomplete` pelo caso real — nunca remova o teste.
 */
final class {{ class }}ActionTest extends CoreTestCase
{
    #[Test]
    public function it_applies_the_main_business_rule(): void
    {
        self::markTestIncomplete(
            'Vermelho→verde: implemente o caso real para {{ action }}Action e remova este aviso.'
        );

        // Referência de uso (a Action recebe DTO e devolve valor concreto; erros via exceção):
        // $action = app({{ action }}Action::class);
        // $resultado = $action->execute({{ class }}DTO::fromArray(['title' => 'exemplo']));
        // self::assertNotNull($resultado);
    }
}
