package com.rzg.zombieland.server.controlador;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.google.gson.Gson;
import com.rzg.zombieland.comunes.comunicacion.respuesta.RespuestaGenerica;
import com.rzg.zombieland.comunes.misc.ZombielandException;
import com.rzg.zombieland.server.comunicacion.controlador.ControladorConSesion;
import com.rzg.zombieland.server.sesion.ManejadorSesion;
/**
* Verifica la funcionalidad del controlador con sesi�n.
* @author nicolas
*
*/
public class ControladorConSesionTest {
private class ControladorConSesionImpl extends ControladorConSesion {
private final static String MENSAJE_LINEA_PROCESADA = "Procesada!";
public ControladorConSesionImpl(ManejadorSesion manejadorSesion)
throws ZombielandException {
super(manejadorSesion);
}
@Override
public String procesarAutenticado(String linea) {
return MENSAJE_LINEA_PROCESADA;
}
}
/**
* Verifica usar el controlador con datos v�lidos.
* @throws ZombielandException
*/
@Test
public void testSesionValida() throws ZombielandException {
ManejadorSesionImpl manejador = new ManejadorSesionImpl();
manejador.crearSesion();
ControladorConSesionImpl controlador = new ControladorConSesionImpl(manejador);
assertEquals(ControladorConSesionImpl.MENSAJE_LINEA_PROCESADA, controlador.procesar("test"));
}
/**
* Verifica que intentar usar el controlador con una sesi�n nula devuelve un mensaje de error.
* @throws ZombielandException
*/
@Test
public void testDatosSesionNula() throws ZombielandException {
String respuesta = new ControladorConSesionImpl(new ManejadorSesionImpl()).procesar("lala");
assertEquals(ControladorConSesion.MENSAJE_NO_AUTENTICADO,
new Gson().fromJson(respuesta, RespuestaGenerica.class).getMensajeError());
}
}