public static void ValidarResenia(Resenia resenia) { ValidadorString.ValidarStringVacio(resenia.Texto); ValidadorString.ValidarStringVacio(resenia.Datos.Apellido); ValidadorString.ValidarStringVacio(resenia.Datos.Nombre); ValidarPuntaje(resenia.Puntaje); }
public IActionResult PutResenia(int id, [FromBody] Resenia resenia) { if (resenia == null) { return(BadRequest("Descripcion no puede ser null")); } try { Reserva reserva = this.logica.ObtenerPorId(id); resenia.Datos.Nombre = reserva.NombreTurista; resenia.Datos.Apellido = reserva.ApellidoTurista; ValidadorResenia.ValidarResenia(resenia); logicaHospedaje.AgregarResenia(reserva.Hospedaje, resenia); return(Ok(reserva)); } catch (EntidadNoExisteExcepcion) { return(NotFound("No existe la reserva")); } catch (StringVacioException) { return(BadRequest("No pueden haber datos vacios")); } catch (PuntajeFueraDeRangoException) { return(BadRequest("Puntaje fuera de rango")); } catch (UnsupportedContentTypeException) { return(BadRequest("Formato no soportado. Debe ser JSON")); } }
public void PutAgregarReseniaReservaNoExiste() { var logicMock = new Mock <IReserva>(MockBehavior.Strict); var logicMockHospedaje = new Mock <IHospedaje>(MockBehavior.Strict); ReservasController controller = new ReservasController(logicMock.Object, logicMockHospedaje.Object); Resenia resenia = new Resenia() { Puntaje = 1, Texto = "Test", Datos = new DatosUsuario() { Apellido = "Test", Nombre = "ASD", Mail = "[email protected]" } }; Hospedaje hospedaje = new Hospedaje() { Id = 0, }; logicMockHospedaje.Setup(x => x.AgregarResenia(hospedaje, resenia)); logicMock.Setup(x => x.ObtenerPorId(0)).Throws(new EntidadNoExisteExcepcion()); var result = controller.PutResenia(hospedaje.Id, resenia); var okResult = result as NotFoundObjectResult; logicMock.VerifyAll(); }
public void AgregarResenia(Hospedaje hospedajeNuevo, Resenia resenia) { Hospedaje hospedaje = this.repository.GetAll().Where(x => x.Id == hospedajeNuevo.Id).FirstOrDefault(); hospedaje.Resenias.Add(resenia); hospedaje.Puntaje = CalcularPromedio(hospedaje); this.repository.Update(hospedaje); this.repository.Save(); }
public void TestPuntajeMenorMinimo() { int puntaje = 0; Resenia resenia = new Resenia() { Puntaje = puntaje, Texto = "Test", Datos = new DatosUsuario() { Apellido = "Test", Nombre = "Test", Mail = "[email protected]" }, }; Assert.Throws <PuntajeFueraDeRangoException>(() => ValidadorResenia.ValidarResenia(resenia)); }
public void TestPuntajeLimiteAbajoOk() { int puntaje = 1; Resenia resenia = new Resenia() { Puntaje = puntaje, Texto = "Test", Datos = new DatosUsuario() { Apellido = "Test", Nombre = "Test", Mail = "[email protected]" }, }; ValidadorResenia.ValidarResenia(resenia); }
public void CalcularPromedioRedondeo() { var repoMock = new Mock <IRepository <Hospedaje> >(MockBehavior.Strict); var logicaPuntoMock = new Mock <IPuntoTuristico>(MockBehavior.Strict); Hospedaje_Logic logica = new Hospedaje_Logic(repoMock.Object, logicaPuntoMock.Object); Resenia resenia1 = new Resenia() { Puntaje = 2 }; Resenia resenia2 = new Resenia() { Puntaje = 2 }; Resenia resenia3 = new Resenia() { Puntaje = 1 }; Hospedaje hospedaje = new Hospedaje() { Id = 0, Ocupado = false, PuntoTuristico = new PuntoTuristico(), NombreHospedaje = "Hotel X", Descripcion = "Test", Direccion = "Test", CantidadEstrellas = 2, Capacidad = 5, PrecioPorNoche = 140, PrecioTotalPeriodo = 200, Imagenes = new List <Imagen>() { new Imagen() { Id = 0, Ruta = "test.jpg", }, }, Resenias = new List <Resenia>() { resenia1, resenia2, resenia3 }, }; double esperado = 1.7; repoMock.Setup(x => x.Get(hospedaje.Id)).Returns(hospedaje); double resultado = logica.CalcularPromedio(hospedaje); Assert.AreEqual(esperado, resultado); }
public void AgregarReseniaOk() { var repoMock = new Mock <IRepository <Hospedaje> >(MockBehavior.Strict); var logicaPuntoMock = new Mock <IPuntoTuristico>(MockBehavior.Strict); Hospedaje_Logic logica = new Hospedaje_Logic(repoMock.Object, logicaPuntoMock.Object); Resenia resenia = new Resenia() { Datos = new DatosUsuario() { Apellido = "Test", Mail = "[email protected]", Nombre = "Test2" }, Puntaje = 5, Texto = "Pruebas" }; Hospedaje hospedaje = new Hospedaje() { Id = 0, Ocupado = false, PuntoTuristico = new PuntoTuristico(), NombreHospedaje = "Hotel X", Descripcion = "Test", Direccion = "Test", CantidadEstrellas = 2, Capacidad = 5, PrecioPorNoche = 140, PrecioTotalPeriodo = 200, Imagenes = new List <Imagen>() { new Imagen() { Id = 0, Ruta = "test.jpg", }, }, Resenias = new List <Resenia>(), }; repoMock.Setup(x => x.GetAll()).Returns(new List <Hospedaje>() { hospedaje }); repoMock.Setup(x => x.Update(hospedaje)); repoMock.Setup(x => x.Save()); logica.AgregarResenia(hospedaje, resenia); Assert.AreEqual(resenia, hospedaje.Resenias.FirstOrDefault()); }
public void PutAgregarReseniaPuntajeFueraDeRango() { var logicMock = new Mock <IReserva>(MockBehavior.Strict); var logicMockHospedaje = new Mock <IHospedaje>(MockBehavior.Strict); ReservasController controller = new ReservasController(logicMock.Object, logicMockHospedaje.Object); Resenia resenia = new Resenia() { Puntaje = 10, Texto = "Test", Datos = new DatosUsuario() { Apellido = "Test", Nombre = "ASD", Mail = "[email protected]" } }; Hospedaje hospedaje = new Hospedaje() { Id = 0, }; Reserva reserva = new Reserva() { Id = 0, ApellidoTurista = "Test", NombreTurista = "Test", Hospedaje = hospedaje, }; logicMockHospedaje.Setup(x => x.AgregarResenia(hospedaje, resenia)).Throws(new PuntajeFueraDeRangoException()); logicMock.Setup(x => x.ObtenerPorId(reserva.Id)).Returns(reserva); var result = controller.PutResenia(hospedaje.Id, resenia); var okResult = result as BadRequestObjectResult; logicMock.VerifyAll(); }