Advertisement
techno-

test jugador

Nov 7th, 2024
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.53 KB | None | 0 0
  1. package vvs.planets.dominio.jugador;
  2.  
  3. import com.pholser.junit.quickcheck.Property;
  4. import com.pholser.junit.quickcheck.runner.JUnitQuickcheck;
  5. import org.junit.jupiter.api.BeforeEach;
  6. import org.junit.jupiter.api.Test;
  7. import org.junit.runner.RunWith;
  8. import static org.junit.jupiter.api.Assertions.*;
  9. import static org.mockito.Mockito.*;
  10.  
  11. import vvs.planets.dominio.Arbitro;
  12. import vvs.planets.util.OperacionInvalida;
  13. import vvs.planets.util.Observable;
  14. import vvs.planets.util.Observador;
  15.  
  16. @RunWith(JUnitQuickcheck.class)
  17. public class JugadorTest {
  18.  
  19.     private Jugador jugador;
  20.     private Arbitro arbitroMock;
  21.  
  22.     @BeforeEach
  23.     public void setUp() {
  24.         arbitroMock = mock(Arbitro.class);
  25.         jugador = new Jugador("JugadorDePrueba");
  26.     }
  27.  
  28.     @Property
  29.     public void testNombreEsInmutable(String nombre) {
  30.         jugador = new Jugador(nombre);
  31.  
  32.         // Cambia el estado y verifica que el nombre no cambia
  33.         jugador.establecerEstado(new Preparado());
  34.         assertEquals(nombre, jugador.obtenerNombre(), "El nombre debe ser inmutable.");
  35.     }
  36.  
  37.     @Property
  38.     public void testObtenerDescripcion(String nombre) {
  39.         jugador = new Jugador(nombre);
  40.  
  41.         // Se verifica que obtenerDescripcion no cause excepciones ni dé un resultado nulo
  42.         assertNotNull(jugador.obtenerDescripcion(), "La descripción no debería ser nula.");
  43.     }
  44.  
  45.     @Property
  46.     public void testEnviarOrden(String orden) {
  47.         EstadoJugador estadoMock = mock(EstadoJugador.class);
  48.         jugador.establecerEstado(estadoMock);
  49.  
  50.         // Enviar órdenes generadas aleatoriamente y verificar que no lance excepciones
  51.         assertDoesNotThrow(() -> jugador.enviarOrden(orden));
  52.     }
  53.  
  54.     @Property
  55.     public void testJugarTurno(String nombre) {
  56.         jugador = new Jugador(nombre);
  57.         EstadoJugador estadoMock = mock(EstadoJugador.class);
  58.         jugador.establecerEstado(estadoMock);
  59.  
  60.         // Probar el método jugarTurno
  61.         assertDoesNotThrow(() -> jugador.jugarTurno());
  62.     }
  63.  
  64.     @Property
  65.     public void testAbortarTurno(String nombre) {
  66.         jugador = new Jugador(nombre);
  67.         EstadoJugador estadoMock = mock(EstadoJugador.class);
  68.         jugador.establecerEstado(estadoMock);
  69.  
  70.         // Probar abortarTurno sin excepciones
  71.         assertDoesNotThrow(() -> jugador.abortarTurno());
  72.     }
  73.  
  74.     @Test
  75.     public void testPasarTurnoLanzaOperacionInvalida() {
  76.         // Verificar que se lanza OperacionInvalida al llamar a pasarTurno
  77.         OperacionInvalida exception = assertThrows(OperacionInvalida.class, jugador::pasarTurno);
  78.         assertEquals("No implementado", exception.getMessage());
  79.     }
  80.  
  81.     @Property
  82.     public void testAbandonarJuego(String nombre) {
  83.         jugador = new Jugador(nombre);
  84.         EstadoJugador estadoMock = mock(EstadoJugador.class);
  85.         jugador.establecerEstado(estadoMock);
  86.  
  87.         // Verificar que abandonarJuego se llama correctamente en el estado actual
  88.         assertDoesNotThrow(() -> jugador.abandonarJuego());
  89.     }
  90.  
  91.     @Test
  92.     public void testVolverJuegoLanzaOperacionInvalida() {
  93.         // Verificar que volverJuego lanza la excepción esperada
  94.         OperacionInvalida exception = assertThrows(OperacionInvalida.class, jugador::volverJuego);
  95.         assertEquals("No implementado", exception.getMessage());
  96.     }
  97.  
  98.     @Property
  99.     public void testActualizarCambioDeTurno(String nombre) {
  100.         jugador = new Jugador(nombre);
  101.         EstadoJugador estadoMock = mock(EstadoJugador.class);
  102.         jugador.establecerEstado(estadoMock);
  103.  
  104.         when(arbitroMock.obtenerTurno()).thenReturn(2);
  105.         jugador.establecerTurno(1); // Cambiar el turno inicial para forzar la actualización
  106.  
  107.         // Llamada al método actualizar y verificar que el turno avanza
  108.         jugador.actualizar(arbitroMock);
  109.         verify(estadoMock).avanzarTurno(jugador, 2);
  110.     }
  111.  
  112.     @Property
  113.     public void testEstablecerEstado(String nombre) {
  114.         jugador = new Jugador(nombre);
  115.         EstadoJugador nuevoEstado = new Jugando();
  116.  
  117.         // Cambia el estado y verifica que el estado se actualiza correctamente
  118.         jugador.establecerEstado(nuevoEstado);
  119.         assertEquals(nuevoEstado, jugador.obtenerEstado(), "El estado debe actualizarse correctamente.");
  120.     }
  121.  
  122.     @Property
  123.     public void testEstablecerTurnoPositivo(int turno) {
  124.         assumeTrue(turno > 0);
  125.        
  126.         jugador.establecerTurno(turno);
  127.         assertTrue(jugador.obtenerTurno() > 0, "El turno debe ser positivo.");
  128.     }
  129. }
  130.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement