コード例 #1
0
        public void PruebaValidarObtenerOrdenTiendaPagoAprovado()
        {
            var mockRepositorio = new Mock <ITiendaVirtualRepositorio>();
            var respuestaMock   = new Orders
            {
                Created_At      = DateTime.Now,
                Customer_Email  = "*****@*****.**",
                Customer_Mobile = "3217542453",
                Id            = 1,
                Customer_Name = "Carlos Mario",
                Request_Id    = "1784049",
                Status_Id     = 3,
                OrderStatus   = new Status()
                {
                    Id = 3, Status_Description = "APPROVED"
                }
            };

            mockRepositorio.Setup(x => x.ObtenerPorId <Orders>(It.IsAny <int>())).Returns(Task.FromResult(respuestaMock));
            mockRepositorio.Setup(x => x.ObtenerPorId <Status>(It.IsAny <int>())).Returns(Task.FromResult(respuestaMock.OrderStatus));
            var tiendaVirtualServicio = new TiendaVirtualServicio(mockRepositorio.Object);
            var controlador           = new ApiTiendaVirtualController(tiendaVirtualServicio);
            var peticionControlador   = new HttpRequestMessage()
            {
                Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(respuestaMock.Id),
                                            System.Text.Encoding.UTF8)
            };
            var contextoControlador = new HttpControllerContext();

            peticionControlador.SetConfiguration(new HttpConfiguration());
            peticionControlador.SetRequestContext(new HttpRequestContext());
            var entornoOwin = new Dictionary <string, object>();
            var contexto    = new OwinContext(entornoOwin);

            contexto.Request.RemoteIpAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(Ip => Ip.AddressFamily == AddressFamily.InterNetwork).ToString();
            peticionControlador.SetOwinContext(contexto);
            contextoControlador.Request   = peticionControlador;
            controlador.ControllerContext = contextoControlador;
            controlador.Configuration     = new HttpConfiguration();
            // Act on Test: Si devuelve OK. Comprobar que se retornan los resultados correspondientes para la prueba realizada.
            var    resultado          = controlador.ObtenerOrdenTienda(respuestaMock.Id).Result;
            var    respuesta          = resultado.ExecuteAsync(CancellationToken.None).Result;
            Orders resultadoRespuesta = new Orders();

            if (respuesta.StatusCode == HttpStatusCode.OK)
            {
                resultadoRespuesta = Newtonsoft.Json.JsonConvert.DeserializeObject <Orders>(respuesta.Content.ReadAsStringAsync().Result);
            }
            Assert.IsTrue(respuesta.StatusCode == HttpStatusCode.OK && respuestaMock.Equals(resultadoRespuesta));
        }
コード例 #2
0
        public void PruebaValidarObtenerOrdenesTiendaSinRegistrosBD()
        {
            var mockRepositorio = new Mock <ITiendaVirtualRepositorio>();
            var respuestaMock   = new List <Orders>();

            mockRepositorio.Setup(x => x.ObtenerOrdenesTienda()).Returns(Task.FromResult(respuestaMock));
            var tiendaVirtualServicio = new TiendaVirtualServicio(mockRepositorio.Object);
            var controlador           = new ApiTiendaVirtualController(tiendaVirtualServicio);
            var peticionControlador   = new HttpRequestMessage()
            {
                Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(string.Empty),
                                            System.Text.Encoding.UTF8)
            };
            var contextoControlador = new HttpControllerContext();

            peticionControlador.SetConfiguration(new HttpConfiguration());
            peticionControlador.SetRequestContext(new HttpRequestContext());
            var entornoOwin = new Dictionary <string, object>();
            var contexto    = new OwinContext(entornoOwin);

            contexto.Request.RemoteIpAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(Ip => Ip.AddressFamily == AddressFamily.InterNetwork).ToString();
            peticionControlador.SetOwinContext(contexto);
            contextoControlador.Request   = peticionControlador;
            controlador.ControllerContext = contextoControlador;
            controlador.Configuration     = new HttpConfiguration();
            // Act on Test: Si devuelve OK. Comprobar que se retornan los resultados correspondientes para la prueba realizada.
            var           resultado  = controlador.ObtenerOrdenesTienda().Result;
            var           respuesta  = resultado.ExecuteAsync(CancellationToken.None).Result;
            List <Orders> resultados = new List <Orders>();

            if (respuesta.StatusCode == HttpStatusCode.OK)
            {
                resultados = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Orders> >(respuesta.Content.ReadAsStringAsync().Result);
            }
            Assert.IsTrue(respuesta.StatusCode == HttpStatusCode.OK && resultados.Count == respuestaMock.Count);
        }
コード例 #3
0
        public void PruebaValidarObtenerOrdenesTienda()
        {
            var mockRepositorio = new Mock <ITiendaVirtualRepositorio>();
            var respuestaMock   = new List <Orders>()
            {
                new Orders {
                    Created_At      = DateTime.Now, Customer_Email = "*****@*****.**",
                    Customer_Mobile = "3207362669", Id = 1, Customer_Name = "David Alejandro",
                    Request_Id      = "1784048", Status_Id = 1,
                    OrderStatus     = new Status()
                    {
                        Id = 1, Status_Description = "PENDING"
                    }
                },
                new Orders {
                    Created_At      = DateTime.Now, Customer_Email = "*****@*****.**",
                    Customer_Mobile = "3217542453", Id = 1, Customer_Name = "Carlos Mario",
                    Request_Id      = "1784049", Status_Id = 3,
                    OrderStatus     = new Status()
                    {
                        Id = 3, Status_Description = "APPROVED"
                    }
                },
                new Orders {
                    Created_At      = DateTime.Now, Customer_Email = "*****@*****.**",
                    Customer_Mobile = "3207322352", Id = 1, Customer_Name = "Eugenio Alberto",
                    Request_Id      = "1784050", Status_Id = 4,
                    OrderStatus     = new Status()
                    {
                        Id = 4, Status_Description = "REJECTED"
                    }
                }
            };

            mockRepositorio.Setup(x => x.ObtenerOrdenesTienda()).Returns(Task.FromResult(respuestaMock));
            var tiendaVirtualServicio = new TiendaVirtualServicio(mockRepositorio.Object);
            var controlador           = new ApiTiendaVirtualController(tiendaVirtualServicio);
            var peticionControlador   = new HttpRequestMessage()
            {
                Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(string.Empty),
                                            System.Text.Encoding.UTF8)
            };
            var contextoControlador = new HttpControllerContext();

            peticionControlador.SetConfiguration(new HttpConfiguration());
            peticionControlador.SetRequestContext(new HttpRequestContext());
            var entornoOwin = new Dictionary <string, object>();
            var contexto    = new OwinContext(entornoOwin);

            contexto.Request.RemoteIpAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(Ip => Ip.AddressFamily == AddressFamily.InterNetwork).ToString();
            peticionControlador.SetOwinContext(contexto);
            contextoControlador.Request   = peticionControlador;
            controlador.ControllerContext = contextoControlador;
            controlador.Configuration     = new HttpConfiguration();
            // Act on Test: Si devuelve OK. Comprobar que se retornan los resultados correspondientes para la prueba realizada.
            var           resultado = controlador.ObtenerOrdenesTienda().Result;
            var           respuesta = resultado.ExecuteAsync(CancellationToken.None).Result;
            List <Orders> resultados;

            if (respuesta.StatusCode == HttpStatusCode.OK)
            {
                resultados = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Orders> >(respuesta.Content.ReadAsStringAsync().Result);
            }
            else
            {
                resultados = new List <Orders>();
            }
            Assert.IsTrue(resultados.All((registro) => registro.Equals(respuestaMock[resultados.IndexOf(registro)])));
        }
コード例 #4
0
        public void PruebaCrearOrdenValidarEstadoInicial()
        {
            var mockRepositorio = new Mock <ITiendaVirtualRepositorio>();
            var estadosPedido   = new List <Status>()
            {
                new Status {
                    Id = 1, Status_Description = "PENDING"
                },
                new Status {
                    Id = 2, Status_Description = "FAILED"
                },
                new Status {
                    Id = 3, Status_Description = "APPROVED"
                },
                new Status {
                    Id = 4, Status_Description = "REJECTED"
                },
                new Status {
                    Id = 5, Status_Description = "ERROR"
                }
            };
            var respuestaMock = new Orders
            {
                Created_At      = DateTime.Now,
                Customer_Email  = "*****@*****.**",
                Customer_Mobile = "3207362669",
                Id            = 1,
                Customer_Name = "David Alejandro",
                Status_Id     = 1,
                OrderStatus   = new Status()
                {
                    Id = 1, Status_Description = "PENDING"
                }
            };

            mockRepositorio.Setup(x => x.ObtenerPorId <Orders>(It.IsAny <int>())).Returns(Task.FromResult(respuestaMock));
            mockRepositorio.Setup(x => x.ObtenerPorId <Status>(It.IsAny <int>())).Returns(Task.FromResult(respuestaMock.OrderStatus));
            mockRepositorio.Setup(x => x.Insertar(It.IsAny <Orders>())).Callback <Orders>((entidad) => { entidad.Id = 1; });
            mockRepositorio.Setup(x => x.Actualizar(It.IsAny <Orders>())).Callback <Orders>((entidad) => { return; });
            mockRepositorio.Setup(x => x.Eliminar(It.IsAny <Orders>())).Callback <Orders>((entidad) => { return; });
            mockRepositorio.Setup(x => x.ProcesarEstadoOrden(It.IsAny <string>()))
            .Returns <string>((descripcionEstado) =>
            {
                return(Task.FromResult(estadosPedido.FirstOrDefault(x => x.Status_Description == descripcionEstado)));
            });
            var tiendaVirtualServicio = new TiendaVirtualServicio(mockRepositorio.Object);
            var controlador           = new ApiTiendaVirtualController(tiendaVirtualServicio);
            var peticion = new Orders
            {
                Customer_Email  = "*****@*****.**",
                Customer_Mobile = "3207362669",
                Customer_Name   = "David Alejandro",
                UrlRaiz         = "http://localhost:4200"
            };
            var peticionControlador = new HttpRequestMessage()
            {
                Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(peticion),
                                            System.Text.Encoding.UTF8)
            };
            var contextoControlador = new HttpControllerContext();

            peticionControlador.SetConfiguration(new HttpConfiguration());
            peticionControlador.SetRequestContext(new HttpRequestContext());
            peticionControlador.Headers.UserAgent.Add(new ProductInfoHeaderValue("AgentePrueba", "1.0"));
            var entornoOwin = new Dictionary <string, object>();
            var contexto    = new OwinContext(entornoOwin);

            contexto.Request.RemoteIpAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(Ip => Ip.AddressFamily == AddressFamily.InterNetwork).ToString();
            peticionControlador.SetOwinContext(contexto);
            contextoControlador.Request   = peticionControlador;
            controlador.ControllerContext = contextoControlador;
            controlador.Configuration     = new HttpConfiguration();
            // Act on Test: Si devuelve OK. Comprobar que se retornan los resultados correspondientes para la prueba realizada.
            var resultado         = controlador.CrearOrdenPedido(peticion).Result;
            var respuesta         = resultado.ExecuteAsync(CancellationToken.None).Result;
            var ordenPedidoCreada = new Orders();

            if (respuesta.StatusCode == HttpStatusCode.OK)
            {
                ordenPedidoCreada        = Newtonsoft.Json.JsonConvert.DeserializeObject <Orders>(respuesta.Content.ReadAsStringAsync().Result);
                respuestaMock.Request_Id = ordenPedidoCreada.Request_Id;
            }
            resultado = controlador.ObtenerOrdenTienda(ordenPedidoCreada.Id).Result;
            respuesta = resultado.ExecuteAsync(CancellationToken.None).Result;
            var ordenPedidoEstadoInicial = new Orders();

            if (respuesta.StatusCode == HttpStatusCode.OK)
            {
                ordenPedidoEstadoInicial = Newtonsoft.Json.JsonConvert.DeserializeObject <Orders>(respuesta.Content.ReadAsStringAsync().Result);
            }
            Assert.IsTrue(respuesta.StatusCode == HttpStatusCode.OK && ordenPedidoCreada.OrderStatus.Equals(respuestaMock.OrderStatus) &&
                          ordenPedidoCreada.Id == ordenPedidoEstadoInicial.Id && ordenPedidoCreada.Request_Id == ordenPedidoEstadoInicial.Request_Id);
        }