package com.rzg.zombieland.server.meta;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import com.rzg.zombieland.comunes.misc.ZombielandException;
import com.rzg.zombieland.server.controlador.AbstractPartidasTest;
import com.rzg.zombieland.server.sesion.Jugador;
import com.rzg.zombieland.server.sesion.ServicioSesion;
import com.rzg.zombieland.server.sesion.Sesion;
public class ServicioPartidasTest extends AbstractPartidasTest {
@Test
public void testGetPartidaAleatoria() throws ZombielandException {
ServicioPartidas servicio = ServicioPartidas.getInstancia();
assertNull(servicio.getPartidaAleatoria());
Partida partida = crearPartida();
assertEquals(partida, servicio.getPartidaAleatoria());
Sesion sesion = new Sesion(getUltimoAdmin(), new EnviaPeticionesImpl());
sesion.setPartida(partida);
ServicioSesion.getInstancia().addSesion(sesion);
Partida partidaLlena = crearPartida();
sesion = new Sesion(getUltimoAdmin(), new EnviaPeticionesImpl());
sesion.setPartida(partida);
ServicioSesion.getInstancia().addSesion(sesion);
ServicioSesion.getInstancia().addSesion(sesion);
for (int i = 1; i < getUltimaCantidadJugadores(); i++) {
assertTrue(partidaLlena.puedenUnirseJugadores());
Jugador jugador = crearJugador();
sesion = new Sesion(jugador, new EnviaPeticionesImpl());
sesion.setPartida(partidaLlena);
ServicioSesion.getInstancia().addSesion(sesion);
partidaLlena.addJugador(jugador);
}
assertFalse(partidaLlena.puedenUnirseJugadores());
for (int i = 0; i < 100; i++)
assertEquals(partida, servicio.getPartidaAleatoria());
for (int i = 0; i < 100; i++)
crearPartida();
assertNotNull(servicio.getPartidaAleatoria());
}
}