コード例 #1
0
 public static void ValidarResenia(Resenia resenia)
 {
     ValidadorString.ValidarStringVacio(resenia.Texto);
     ValidadorString.ValidarStringVacio(resenia.Datos.Apellido);
     ValidadorString.ValidarStringVacio(resenia.Datos.Nombre);
     ValidarPuntaje(resenia.Puntaje);
 }
コード例 #2
0
 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"));
     }
 }
コード例 #3
0
        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();
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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());
        }
コード例 #9
0
        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();
        }