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); }
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); }
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); }
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); }
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])); }
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); }