package com.rzg.zombieland.comunes.comunicacion.pojo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Assert;
import org.junit.Test;
import com.google.gson.Gson;
import com.rzg.zombieland.comunes.misc.Avatar;
import com.rzg.zombieland.comunes.misc.ParametrosNoValidosException;
/**
* Verifica el funcionamiento del POJO de registro.
* @author nicolas
*
*/
public class POJORegistroTest {
private final String jsonRegistro =
"{"
+ "nombre: 'Juan',"
+ "clave: '1234',"
+ "preguntaSecreta: 'nombre de mi madre',"
+ "respuestaSecreta: 'maria',"
+ "avatar: 'hombre'"
+"}";
private POJORegistro registro;
/**
* Crea un POJORegistro para usar en todos los tests.
*/
public POJORegistroTest() {
try {
registro = new POJORegistro("Juan", "1234", "nombre de mi madre", "maria", null);
} catch (ParametrosNoValidosException e) {
Assert.fail();
}
}
/**
* Prueba deserealizar un pojo de registro.
*/
@Test
public void testDeserializar() {
Gson gson = new Gson();
POJORegistro registroDeserializado = gson.fromJson(jsonRegistro, POJORegistro.class);
assertEquals(registroDeserializado, registro);
}
/**
* Prueba serializar un pojo de registro.
*/
@Test
public void testSerializar() {
Gson gson = new Gson();
String registroSerializada = gson.toJson(registro);
POJORegistro registroDeserializada = gson.fromJson(registroSerializada, POJORegistro.class);
assertEquals(registroDeserializada, registro);
}
@Test
public void testDatosNoValidos() {
try {
new POJORegistro(null, null, null, null, Avatar.OBSTACULO);
fail();
} catch (ParametrosNoValidosException e) {
assertEquals(5, e.getCantidadParametros());
}
}
}