Skip to content

4.5 estado dinamico pokemon

Davi Horacio requested to merge 4.5-estado-dinamico-pokemon into main

O que foi feito nessa branch

Objetivo: implementar estado dinâmico para Pokemon, com transições controladas e validadas.

Mudanças:

  • EstadoPokemon.java (pré-existente) — enum com 4 estados: CADASTRADO → EM_TREINAMENTO → PRONTO_PARA_BATALHA → APOSENTADO
  • Pokemon.java — adicionado método avancarEstado() que implementa a máquina de estados via switch expression exaustivo; removido setEstado() para impedir bypass da progressão
  • TransicaoEstadoInvalidaException.java — nova exceção unchecked lançada ao tentar avançar um Pokémon já APOSENTADO
  • TestePokemon.java — 3 novos testes manuais cobrindo estado inicial, sequência completa e bloqueio em APOSENTADO
  • .gitignore — adicionado para ignorar /bin e /out

Como testar

Compilar e executar a classe de testes:

javac -d bin -cp src $(find src -name "*.java") java -cp bin teste.TestePokemon

Saída esperada na seção de estado dinâmico:

--- Testes: Estado dinâmico --- [OK] Estado inicial: CADASTRADO [OK] Sequencia completa de estados: chegou em APOSENTADO [OK] Transicao de APOSENTADO: bloqueada corretamente

Merge request reports

Loading