Desde la linea de comando descarge el codigo e instale su propia copia:
$ git clone https://github.com/matiduarte/taller2-mensajeroX.git
$ cd Servidor/lib/rocksdb-master/
$ make static_lib
$ mv -i librocksdb.a ../
$ sudo apt-get install libsnappy-dev
$ sudo apt-get install zlib1g-dev
$ sudo apt-get install libbz2-dev
$ sudo apt-get install libcppunit-dev
En la carpeta del servidor escribir:
$ cd taller2-mensajero/Servidor
$ mkdir build
$ cd /build
$ cmake ..
$ make
Una vez finalizado, ejecutar el servidor con ./Servidor -p PUERTO
En caso de no recibir puerto como argumento, se seteará el puerto 8080 por defecto.
Sobre la carpeta build ejecutar:
$ make test
Para ver el resultado de las pruebas en detalle
$ ctest -V
Se incluye un script en python para realizar las pruebas sobre la REST API. Dicho script se encuentra en Servidor/TestRestApi/restTester.py
Dentro de la carpeta TestRestApi/ se encuentra un archivo de configuración de ejemplo: restTest.cfg.sample. Para la ejecución de pruebas se debe crear un archivo restTest.cfg, identico al sample.
Finalmente para correr las pruebas (el servidor debe estar corriendo):
$ python restTester.py
Desde la consola ingresar:
$ sudo apt-get install lcov
Se agrega un script que recoge la información de cobertura a través de las pruebas y la muestra en un explorador web. Para correr este script, dirigirse desde la consola a la carpeta del Servidor e ingresar:
$ sh cobertura.sh
Para genera la documentación del código es necesario tener instalado Doxygen y Sphinx
$ sudo apt-get install doxygen
$ sudo pip install Sphinx
Se incluye un script que genera la documentación del código, tanto del Servidor como del Cliente, en formato html. Para correr este script, en la carpeta Informe (se abrirá por defecto la versión html de la documentación en un explorador web):
$ sh documentacion.sh
Instalar plug-in Postman en el navegador web y seguir los siguientes pasos para probar los diferentes servicios:
####Registrar Usuario: operación: POST
Parámetros:
key: Nombre value: Juan
key: Telefono value: 1112345678
key: Password value: goku
Respuesta Ejemplo:
{
"payload" : "Usuario registrado correctamente",
"success" : "true"
}
####Enviar Mensaje: operación: POST
Parametros:
key: IdUsuarioEmisor value: 11223344
key: IdUsuarioReceptor value: 11334455
key: Cuerpo value: Hola
key: Fecha value: 2015-06-03 18:30:23
key: Token value: g231lsaqwe123129fjq2j123
Respuesta Ejemplo:
{
"payload" : "188c3d61cf52bda68a52f7afe6070727",
"success" : "true"
}
####Editar Perfil: operación: PUT
Parámetros:
key: Nombre value: Juan
key: Telefono value: 112233
key: Password value: goku
key: FotoDePerfil value: default
key Token value: kasd912jdsr12jjajs291283192
key: EstadoDeConexion value: true
Respuesta Ejemplo:
{
"payload" : "Se modificaron los datos del usuario Juan correctamente. Token:",
"success" : "true"
}
####Consultar usuario: operación: GET
Respuesta Ejemplo:
{
"payload" : "{\n \"EstadoDeConexion\" : \"true\",\n \"FotoDePerfil\" : \"default\",\n \"Nombre\" : \"Juan\",\n \"Password\" : \"goku\",\n \"Token\" : \"b1d3cc2ebd0d1ebfcdeb16de173e99b6\",\n \"idUsuario\" : \"0a0625f4dba80e60e7bb4e37114f744f\"\n}\n",
"success" : "true"
}
####Obtener conversacion: operación: GET
respuesta:
{
"payload" : "{\n \"conversaciones\" : [\n {\n \"id\" : \"0a0625f4dba80e60e7bb4e37114f744f-8ca745744c1910342bb2441b61951494\",\n \"ultimoMensaje\" : \"Todo bien. ¿Vos?\",\n \"usuarioFotoDePerfil\" : \"default\",\n \"usuarioNombre\" : \"Pepe\",\n \"usuarioTelefono\" : \"1111223344\"\n }\n ]\n}\n",
"success" : "true"
}