예제 #1
0
        public async Task AddaCupon()
        {
            //Arrange


            var BDName  = Guid.NewGuid().ToString();
            var context = BuildContext(BDName);


            //Act

            var newcupon = new CreatePromocionViewModel()
            {
                Nombre      = "Revifast promo",
                Descuento   = 1,
                Descripcion = "Registrarse en la app",
                ServicioId  = 1,
            };

            var controller = new PromocionesController(context);

            var response = await controller.Create(newcupon);

            var registration = response.Result as StatusCodeResult;

            //Assert

            Assert.IsInstanceOf <OkResult>(registration);
        }
        public async void ValidarVigencia_ShoulReturn404NotFound()
        {
            //el contexto esta poblado con promociones vigentes este año desde junio a junio del 2018 y una promocion de enero a junio de 2018
            int elementosAntes            = context.Promociones.Count(x => x.Activo);
            Mock <ProductosManager> mokPR = new Mock <ProductosManager>();

            mokPR.Setup(x => x.GetCategorias()).Returns(testDataCategorias);

            Mock <MedioPagoManager> mokMP = new Mock <MedioPagoManager>();

            mokMP.Setup(x => x.GetMedioPago(1)).Returns(testDataMediosPago[0]);
            mokMP.Setup(x => x.GetMedioPago(2)).Returns(testDataMediosPago[1]);
            mokMP.Setup(x => x.GetMedioPago(3)).Returns(testDataMediosPago[2]);
            mokMP.Setup(x => x.GetMedioPago(4)).Returns(testDataMediosPago[3]);
            mokMP.Setup(x => x.GetMedioPago(5)).Returns(testDataMediosPago[4]);

            Mock <IDateTime> mockDateTimeNow = new Mock <IDateTime>();

            mockDateTimeNow.Setup(x => x.Now).Returns(new DateTime(2018, 02, 01));


            var controller = new PromocionesController(new PromocionesManager(context, mockDateTimeNow.Object, mokPR.Object, mokMP.Object));

            var result = await controller.GetVigenciaPromocion(20);

            Assert.True(result is NotFoundObjectResult);
        }
예제 #3
0
        public async Task DeleteCupon()
        {
            //Arrange

            var BDName  = Guid.NewGuid().ToString();
            var context = BuildContext(BDName);

            var fakecupon = new Promocion()
            {
                Nombre      = "Revifast promo",
                Descuento   = 1,
                Descripcion = "Registrarse en la app",
                ServicioId  = 1,
            };

            context.Promociones.Add(fakecupon);
            await context.SaveChangesAsync();

            var context2 = BuildContext(BDName);

            //Act
            var controller = new PromocionesController(context2);

            var response = await controller.Delete(1);

            var cancel = response as StatusCodeResult;

            //Assert
            Assert.AreEqual(200, cancel.StatusCode);

            var context3 = BuildContext(BDName);
            var exist    = await context3.Promociones.FindAsync(1);

            Assert.IsNull(exist);
        }
        public async void ValidarVigencia_ShoulReturnNoVigente()
        {
            //el contexto esta poblado con promociones vigentes este año desde junio a junio del 2018 y una promocion de enero a junio de 2018
            int elementosAntes            = context.Promociones.Count(x => x.Activo);
            Mock <ProductosManager> mokPR = new Mock <ProductosManager>();

            mokPR.Setup(x => x.GetCategorias()).Returns(testDataCategorias);

            Mock <MedioPagoManager> mokMP = new Mock <MedioPagoManager>();

            mokMP.Setup(x => x.GetMedioPago(1)).Returns(testDataMediosPago[0]);
            mokMP.Setup(x => x.GetMedioPago(2)).Returns(testDataMediosPago[1]);
            mokMP.Setup(x => x.GetMedioPago(3)).Returns(testDataMediosPago[2]);
            mokMP.Setup(x => x.GetMedioPago(4)).Returns(testDataMediosPago[3]);
            mokMP.Setup(x => x.GetMedioPago(5)).Returns(testDataMediosPago[4]);

            Mock <IDateTime> mockDateTimeNow = new Mock <IDateTime>();

            mockDateTimeNow.Setup(x => x.Now).Returns(new DateTime(2018, 08, 01));// fecha moqueada a la segunda mitad del año


            var controller = new PromocionesController(new PromocionesManager(context, mockDateTimeNow.Object, mokPR.Object, mokMP.Object));

            var result = await controller.GetVigenciaPromocion(6);//promocion 6 vigente solo por la primera mitad del año

            OkObjectResult res     = result as OkObjectResult;
            bool           vigente = (bool)res.Value;

            Assert.False(vigente);
        }
        public async void GetPromocionesPromocionesPorVenta_ShouldReturn1Record()
        {
            Mock <ProductosManager> mokPR = new Mock <ProductosManager>();

            mokPR.Setup(x => x.GetCategorias()).Returns(testDataCategorias);

            Mock <MedioPagoManager> mokMP = new Mock <MedioPagoManager>();

            mokMP.Setup(x => x.GetMedioPago(1)).Returns(testDataMediosPago[0]);
            mokMP.Setup(x => x.GetMedioPago(2)).Returns(testDataMediosPago[1]);
            mokMP.Setup(x => x.GetMedioPago(3)).Returns(testDataMediosPago[2]);
            mokMP.Setup(x => x.GetMedioPago(4)).Returns(testDataMediosPago[3]);
            mokMP.Setup(x => x.GetMedioPago(5)).Returns(testDataMediosPago[4]);

            Mock <IDateTime> mockDateTimeNow = new Mock <IDateTime>();

            mockDateTimeNow.Setup(x => x.Now).Returns(new DateTime(2018, 02, 01));


            var controller = new PromocionesController(new PromocionesManager(context, mockDateTimeNow.Object, mokPR.Object, mokMP.Object));

            var result = await controller.GetPromocionesVenta(new QueryPromocionesDTO()
            {
                CantidadDeCuotas    = 0,
                EntidadFinancieraId = 0,
                ProductoCategoriaId = 5,
                MedioPagoId         = 10,
                TipoMedioPagoId     = 0
            });

            OkObjectResult   ResultGet = result as OkObjectResult;
            List <Promocion> value     = ResultGet.Value as List <Promocion>;

            Assert.True(1 == value.Count);
        }
        public async void GetPromocionesVigentesEnFecha_ShouldReturn0Records()
        {
            Mock <ProductosManager> mokPR = new Mock <ProductosManager>();

            mokPR.Setup(x => x.GetCategorias()).Returns(testDataCategorias);

            Mock <MedioPagoManager> mokMP = new Mock <MedioPagoManager>();

            mokMP.Setup(x => x.GetMedioPago(1)).Returns(testDataMediosPago[0]);
            mokMP.Setup(x => x.GetMedioPago(2)).Returns(testDataMediosPago[1]);
            mokMP.Setup(x => x.GetMedioPago(3)).Returns(testDataMediosPago[2]);
            mokMP.Setup(x => x.GetMedioPago(4)).Returns(testDataMediosPago[3]);
            mokMP.Setup(x => x.GetMedioPago(5)).Returns(testDataMediosPago[4]);

            Mock <IDateTime> mockDateTimeNow = new Mock <IDateTime>();

            mockDateTimeNow.Setup(x => x.Now).Returns(new DateTime(2018, 02, 01));


            var controller = new PromocionesController(new PromocionesManager(context, mockDateTimeNow.Object, mokPR.Object, mokMP.Object));


            var result = await controller.GetPromocionesVigentesEnFecha(new DateTime(2017, 02, 01));

            OkObjectResult ResultGet = result as OkObjectResult;

            List <Promocion> value = ResultGet.Value as List <Promocion>;

            Assert.True(0 == value.Count);
        }
예제 #7
0
        public void Get_Vigente_RetornaVacio()
        {
            var         repositorio = new Mock <IPromocionRepository>();
            var         icfg        = new Mock <IConfiguration>();
            PromocionBl promocionBl = new PromocionBl(repositorio.Object, icfg.Object);
            var         controller  = new PromocionesController(promocionBl);
            var         resp        = controller.Vigente(new Guid("08d5d180-aed9-6df7-6f96-b0384c000001"));

            Assert.True(resp.StatusCode == HttpStatusCode.OK);
        }
예제 #8
0
        public void Get_ListaPromociones_RetornaVacio()
        {
            var         repositorio = MockHelper.GenerarMockRepositorio();
            var         icfg        = new Mock <IConfiguration>();
            PromocionBl promocionBl = new PromocionBl(repositorio.Object, icfg.Object);
            var         controller  = new PromocionesController(promocionBl);
            var         resp        = controller.ListaPromociones();

            Assert.True(resp.Result.Length <= 2);
        }
        public async void CrearPromocion_ShoulReturnDuplicidadException()
        {
            //el contexto esta poblado con promociones vigentes este año desde junio a junio del 2018 y una promocion de enero a junio de 2018
            int elementosAntes            = context.Promociones.Count(x => x.Activo);
            Mock <ProductosManager> mokPR = new Mock <ProductosManager>();

            mokPR.Setup(x => x.GetCategorias()).Returns(testDataCategorias);

            Mock <MedioPagoManager> mokMP = new Mock <MedioPagoManager>();

            mokMP.Setup(x => x.GetMedioPago(1)).Returns(testDataMediosPago[0]);
            mokMP.Setup(x => x.GetMedioPago(2)).Returns(testDataMediosPago[1]);
            mokMP.Setup(x => x.GetMedioPago(3)).Returns(testDataMediosPago[2]);
            mokMP.Setup(x => x.GetMedioPago(4)).Returns(testDataMediosPago[3]);
            mokMP.Setup(x => x.GetMedioPago(5)).Returns(testDataMediosPago[4]);

            Mock <IDateTime> mockDateTimeNow = new Mock <IDateTime>();

            mockDateTimeNow.Setup(x => x.Now).Returns(new DateTime(2018, 08, 01));// fecha moqueada a la segunda mitad del año


            var controller = new PromocionesController(new PromocionesManager(context, mockDateTimeNow.Object, mokPR.Object, mokMP.Object));

            var result = await controller.CrearPromocion(new PromocionInsertDTO()
            {
                Activo           = true,
                TipoMedioPagoIds = new List <int> {
                    1
                },
                EntidadFinancieraIds = new List <int> {
                    1
                },
                MedioPagoIds = new List <int> {
                    1
                },
                ProductoCategoriaIds = new List <int> {
                    1, 2, 3, 4, 5, 6
                },
                MaxCantidadDeCuotas = 12,
                PorcentajeDecuento  = 5,
                FechaInicio         = new DateTime(2017, 06, 01),
                FechaFin            = new DateTime(2018, 06, 01)
            });//promocion 6 vigente solo por la primera mitad del año

            Assert.True(result is BadRequestObjectResult);
        }
예제 #10
0
        public async Task UpdateCupon()
        {
            //Arrange

            var BDName  = Guid.NewGuid().ToString();
            var context = BuildContext(BDName);

            var fakecupon = new Promocion()
            {
                Nombre      = "Revifast promo",
                Descuento   = 1,
                Descripcion = "Registrarse en la app",
                ServicioId  = 1,
            };

            context.Promociones.Add(fakecupon);
            await context.SaveChangesAsync();

            var context2 = BuildContext(BDName);

            //Act
            var controller = new PromocionesController(context2);

            var fakecuponUPT = new UpdatePromocionViewModel()
            {
                Nombre      = "Revifast promo 2",
                Descuento   = 1,
                Descripcion = "Iniciar sesion en la app",
                ServicioId  = 1,
            };

            var response = await controller.Update(fakecuponUPT);

            var update = response as StatusCodeResult;

            //Assert
            Assert.AreEqual(400, update.StatusCode);

            var context3 = BuildContext(BDName);
            var exist    = await context3.Promociones.FindAsync(1);

            Assert.IsNotNull(exist);
        }
        public async void ModificarPromociones_ShouldReturnOk()
        {
            Mock <ProductosManager> mokPR = new Mock <ProductosManager>();

            mokPR.Setup(x => x.GetCategorias()).Returns(testDataCategorias);

            Mock <MedioPagoManager> mokMP = new Mock <MedioPagoManager>();

            mokMP.Setup(x => x.GetMedioPago(1)).Returns(testDataMediosPago[0]);
            mokMP.Setup(x => x.GetMedioPago(2)).Returns(testDataMediosPago[1]);
            mokMP.Setup(x => x.GetMedioPago(3)).Returns(testDataMediosPago[2]);
            mokMP.Setup(x => x.GetMedioPago(4)).Returns(testDataMediosPago[3]);
            mokMP.Setup(x => x.GetMedioPago(5)).Returns(testDataMediosPago[4]);

            Mock <IDateTime> mockDateTimeNow = new Mock <IDateTime>();

            mockDateTimeNow.Setup(x => x.Now).Returns(new DateTime(2018, 02, 01));


            var controller         = new PromocionesController(new PromocionesManager(context, mockDateTimeNow.Object, mokPR.Object, mokMP.Object));
            var registroModificado = new List <int> {
                1
            };
            var dataModificar = new PromocionUpdateDTO()
            {
                Id = 1,
                TipoMedioPagoIds     = null,
                EntidadFinancieraIds = null,
                MedioPagoIds         = registroModificado,
                ProductoCategoriaIds = new List <int> {
                    1, 2, 3, 4, 5, 6
                },
                MaxCantidadDeCuotas = 12,
                PorcentajeDecuento  = 15
            };

            var result = await controller.ModificarPromocion(dataModificar);

            var dataModificada = context.Promociones.SingleOrDefault(x => x.Id == dataModificar.Id);

            Assert.True(result is OkObjectResult);
            Assert.True(registroModificado[0].Equals(dataModificada.MedioPagoIds[0]));
        }
예제 #12
0
        public async Task CuponDetails()
        {
            //Arrange

            var BDName  = Guid.NewGuid().ToString();
            var context = BuildContext(BDName);

            var fakecupon = new Promocion()
            {
                Nombre      = "Revifast promo",
                Descuento   = 1,
                Descripcion = "Registrarse en la app",
                ServicioId  = 1,
            };

            var fakecupon2 = new Promocion()
            {
                Nombre      = "Revifast promo 2",
                Descuento   = 1,
                Descripcion = "Iniciar sesion en la app",
                ServicioId  = 1,
            };



            context.Promociones.Add(fakecupon);
            context.Promociones.Add(fakecupon2);
            await context.SaveChangesAsync();

            var context2 = BuildContext(BDName);

            //Act
            var controller = new PromocionesController(context2);

            var response = await controller.List();


            //Assert
            Assert.IsNotNull(response);
        }
        public async void ModificarPromociones_ShouldReturn404NotFound()
        {
            //el contexto esta poblado con promociones vigentes este año desde junio a junio del 2018 y una promocion de enero a junio de 2018

            Mock <ProductosManager> mokPR = new Mock <ProductosManager>();

            mokPR.Setup(x => x.GetCategorias()).Returns(testDataCategorias);

            Mock <MedioPagoManager> mokMP = new Mock <MedioPagoManager>();

            mokMP.Setup(x => x.GetMedioPago(1)).Returns(testDataMediosPago[0]);
            mokMP.Setup(x => x.GetMedioPago(2)).Returns(testDataMediosPago[1]);
            mokMP.Setup(x => x.GetMedioPago(3)).Returns(testDataMediosPago[2]);
            mokMP.Setup(x => x.GetMedioPago(4)).Returns(testDataMediosPago[3]);
            mokMP.Setup(x => x.GetMedioPago(5)).Returns(testDataMediosPago[4]);

            Mock <IDateTime> mockDateTimeNow = new Mock <IDateTime>();

            mockDateTimeNow.Setup(x => x.Now).Returns(new DateTime(2018, 02, 01));


            var controller = new PromocionesController(new PromocionesManager(context, mockDateTimeNow.Object, mokPR.Object, mokMP.Object));

            var result = await controller.ModificarPromocion(new PromocionUpdateDTO()
            {
                Id = 10,//Id 10 no existe
                TipoMedioPagoIds     = null,
                EntidadFinancieraIds = null,
                MedioPagoIds         = new List <int> {
                    1, 2
                },
                ProductoCategoriaIds = new List <int> {
                    1, 2, 3, 4, 5, 6
                },                                                        //promocion 7 no valida
                MaxCantidadDeCuotas = 12,
                PorcentajeDecuento  = 15,
            });

            Assert.True(result is NotFoundObjectResult);
        }
        public async void DeletePromociones_ShouldDelete2Records()
        {
            //el contexto esta poblado con promociones vigentes este año desde junio a junio del 2018 y una promocion de enero a junio de 2018

            int elementosAntes = context.Promociones.Count(x => x.Activo);

            var controller = new PromocionesController(new PromocionesManager(context, null, null, null));
            var result     = await controller.DeletePromocion(new PromocionDeleteDTO()
            {
                PromocionesIds = new List <int> {
                    1, 2, 20
                }
            });

            OkObjectResult ResultGet = result as OkObjectResult;

            int elementosEliminados = (int)ResultGet.Value;
            int elementosDespues    = context.Promociones.Count(x => x.Activo);

            Assert.True(elementosEliminados == 2);

            Assert.True(elementosAntes - elementosEliminados == elementosDespues);
        }