==================================================== TDD — OtpCanalRegistry + LogCanal + Factory ==================================================== [PASS] Registry registra canal "log" [PASS] Resolver retorna instância de LogCanal [PASS] LogCanal->nome() = "log" [PASS] LogCanal aceita destinatário não-vazio [PASS] LogCanal rejeita destinatário vazio [PASS] Registry rejeita classe que não implementa OtpCanalInterface [PASS] Resolver canal não registrado lança RuntimeException [PASS] Listar inclui "log" [PASS] Factory respeita override global [PASS] Override forceNome=sms não captura "log2" [PASS] Após clearOverride, factory volta ao Registry [PASS] LogCanal::enviar retorna true [PASS] Reset limpa registry ==================================================== RESULTADO: PASS=13 FAIL=0 TODOS OS TESTES PASSARAM