package com.rzg.zombieland.server.controlador; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.UUID; import org.junit.After; import com.rzg.zombieland.comunes.comunicacion.pojo.POJOCreacionPartida; import com.rzg.zombieland.comunes.comunicacion.pojo.POJOPartida; import com.rzg.zombieland.comunes.misc.ParametrosNoValidosException; import com.rzg.zombieland.server.meta.Partida; import com.rzg.zombieland.server.meta.ServicioPartidas; import com.rzg.zombieland.server.sesion.Jugador; import com.rzg.zombieland.server.sesion.ServicioSesion; public abstract class AbstractPartidasTest { protected List<POJOPartida> pojoPartidasCreadas; protected List<Partida> partidasCreadas; private Jugador ultimoAdmin; private int ultimaCantidadJugadores; private int ultimaCantidadRondas; private String ultimoNombre; /** * @return the partidasCreadas */ public List<POJOPartida> getPartidasCreadas() { return pojoPartidasCreadas; } /** * Constructor por defecto. */ public AbstractPartidasTest() { pojoPartidasCreadas = new ArrayList<POJOPartida>(); partidasCreadas = new ArrayList<Partida>(); } /** * Vuela el servicio de sesi�n y el de partidas. */ @After public void tearDown() { ServicioSesion.matarInstancia(); ServicioPartidas.matarInstancia(); pojoPartidasCreadas.clear(); } /** * Crea una partida con datos aleatorios. * @throws ParametrosNoValidosException */ protected Partida crearPartida() throws ParametrosNoValidosException { Random random = new Random(); ultimoAdmin = crearJugador(); int cantidadJugadores = random.nextInt( POJOCreacionPartida.CANTIDAD_MAXIMA_JUGADORES - POJOCreacionPartida.CANTIDAD_MINIMA_JUGADORES) + POJOCreacionPartida.CANTIDAD_MINIMA_JUGADORES; ultimaCantidadRondas = cantidadJugadores * 2; ultimaCantidadJugadores = cantidadJugadores; ultimoNombre = UUID.randomUUID().toString(); Partida partida = new Partida(getUltimoAdmin(), new POJOCreacionPartida(ultimaCantidadRondas, ultimaCantidadJugadores, ultimoNombre)); ServicioPartidas.getInstancia().addPartida(partida); pojoPartidasCreadas.add(partida.getPOJO(null)); partidasCreadas.add(partida); return partida; } /** * @return el �ltimo admin adjuntado a una partida. */ public Jugador getUltimoAdmin() { return ultimoAdmin; } /** * @return the ultimaCantidadJugadores */ public int getUltimaCantidadJugadores() { return ultimaCantidadJugadores; } /** * @return the ultimaCantidadRondas */ public int getUltimaCantidadRondas() { return ultimaCantidadRondas; } /** * @return the ultimoNombre */ public String getUltimoNombre() { return ultimoNombre; } protected Jugador crearJugador() throws ParametrosNoValidosException { String clave = UUID.randomUUID().toString(); Jugador jugador = new Jugador(UUID.randomUUID().toString(), clave, clave, UUID.randomUUID().toString(), UUID.randomUUID().toString()); jugador.setId(new Random().nextInt()); return jugador; } }