public void ConvertirAPedidos_PedidoConDistanciaNoNumerica_ExcepcionFormato()
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add($"origen,destino,distancia incorrecta,paqueteria,medio,20/01/2020");
            var SUT = new ConvertidorPedido();

            //Assert
            Assert.ThrowsException <FormatException>(() => SUT.ConvertirAPedidos(lstLineas));
        }
        public void ConvertirAPedidos_PedidoConFormatoFechaIncorrecta_ExcepcionFormato()
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add($"origen,destino,80,paqueteria,medio,Fecha incorrecta");
            var SUT = new ConvertidorPedido();

            //Assert
            Assert.ThrowsException <FormatException>(() => SUT.ConvertirAPedidos(lstLineas));
        }
        public void ConvertirAPedidos_SinDatosPedido_ListaPedidoVacia()
        {
            //Arrange
            List <string> lstLineas = new List <string>();
            var           SUT       = new ConvertidorPedido();

            //Act
            var lstPedidos = SUT.ConvertirAPedidos(lstLineas);

            //Assert
            Assert.AreEqual(0, lstPedidos.Count);
        }
        public void ConvertirAPedidos_DiferentesValoresDistanciaEntradaPedido_ListaPedidoContieneMismaDistanciaEnviada(double _dDistancia)
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add($"origen,destino,{_dDistancia},paqueteria,medio,28/01/2020");
            var SUT = new ConvertidorPedido();

            //Act
            var lstPedidos = SUT.ConvertirAPedidos(lstLineas);

            //Assert
            Assert.AreEqual(Convert.ToDecimal(_dDistancia), lstPedidos.FirstOrDefault().dDistancia);
        }
        public void ConvertirAPedidos_DiferentesValoresDestinoEntradaPedido_ListaPedidoContieneMismoDestinoEnviado(string _cDestino)
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add($"origen,{_cDestino},80,paqueteria,medio,28/01/2020");
            var SUT = new ConvertidorPedido();

            //Act
            var lstPedidos = SUT.ConvertirAPedidos(lstLineas);

            //Assert
            Assert.AreEqual(_cDestino, lstPedidos.FirstOrDefault().cDestino);
        }
        public void ConvertirAPedidos_PedidosEntradaSinCorrectoNumeroDatos_ListaPedidoSinElementos(string _cDatoPedido)
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add($"{_cDatoPedido}");
            var SUT = new ConvertidorPedido();

            //Act
            var lstPedidos = SUT.ConvertirAPedidos(lstLineas);

            //Assert
            Assert.AreEqual(0, lstPedidos.Count);
        }
        public void ConvertirAPedidos_DiferentesFechasEntradaPedido_ListaPedidoContieneMismasFechasEnviadas(string _cFechaPedido)
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add($"origen,destino,80,paqueteria,medio,{_cFechaPedido}");
            var SUT = new ConvertidorPedido();

            //Act
            var lstPedidos = SUT.ConvertirAPedidos(lstLineas);

            //Assert
            Assert.AreEqual(Convert.ToDateTime(_cFechaPedido), lstPedidos.FirstOrDefault().dtPedido);
        }
        public void ConvertirAPedidos_PedidoCorrecto_ListaPedidoConDatos()
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add("origen,destino,80,paqueteria,medio,28/01/2020");
            var SUT = new ConvertidorPedido();

            //Act
            var lstPedidos = SUT.ConvertirAPedidos(lstLineas);

            //Assert
            Assert.IsTrue(lstPedidos.Any());
        }
        public void ConvertirAPedidos_PedidosConDosEntradas_ListaPedidoConDosPedidos()
        {
            //Arrange
            List <string> lstLineas = new List <string>();

            lstLineas.Add("origen,destino,80,paqueteria,medio,28/01/2020");
            lstLineas.Add("origen1,destino1,80,paqueteria1,medio1,28/01/2020");
            var SUT = new ConvertidorPedido();

            //Act
            var lstPedidos = SUT.ConvertirAPedidos(lstLineas);

            //Assert
            Assert.AreEqual(2, lstPedidos.Count);
        }
Example #10
0
        public void RastrearPedidos()
        {
            string              cRutaPedidos  = @"..\..\Pedidos.txt";
            string              cEstadoPedido = string.Empty;
            string              cRangoTiempo  = string.Empty;
            string              cCosto        = string.Empty;
            string              cRespuesta    = string.Empty;
            List <IEmpresa>     lstEmpresas;
            List <IMetodoEnvio> lstMetodosEnvio;
            IEmpresa            empresaPedido;
            IPresentadorDatos   presentador = new Presentadores.PresentadorDatos();
            DateTime            dtActual    = DateTime.Now;

            try
            {
                #region [Instancias de clases]

                CreadorEmpresas            creadorEmpresas          = new CreadorEmpresas();
                CreadorMetodosEnvio        creadorMetodosEnvio      = new CreadorMetodosEnvio();
                CreadorRangosTiempo        creadorRangosTiempo      = new CreadorRangosTiempo();
                CreadorValidaciones        credorValidaciones       = new CreadorValidaciones();
                IConvertidorPedido         convertidorPedido        = new ConvertidorPedido();
                ILectorArchivo             lectorArchivo            = new LectorArchivoTexto(convertidorPedido);
                CreadorValidaciones        validaciones             = new CreadorValidaciones();
                ContextColor               contextColor             = new ContextColor();
                IVerificadorEstadoPaquete  verificadorEstadoPaquete = new VerificadorEstadoPaquete(dtActual);
                IVerificadorCostoEconomico verificadorEconomico     = new VerificadorEconomicoMismoMedio();

                #endregion

                IRangoTiempo     rangoTiempo     = creadorRangosTiempo.ConfigurarRangosTiempo();
                IValidadorPedido validadorPedido = validaciones.CrearCadenaValidaciones();
                List <PedidoDTO> lstPedidos      = lectorArchivo.LeerArchivoAListaPedidos(cRutaPedidos);
                lstMetodosEnvio = creadorMetodosEnvio.CrearMetodoEnvio();
                lstEmpresas     = creadorEmpresas.GenerarEmpresas(lstMetodosEnvio);

                foreach (var pedido in lstPedidos)
                {
                    cRespuesta = validadorPedido.RealizarValidacion(new List <PedidoDTO> {
                        pedido
                    }, lstEmpresas);
                    if (string.IsNullOrWhiteSpace(cRespuesta))
                    {
                        empresaPedido = lstEmpresas.Where(e => e.empresaDTO.cNombre.ToLower() == pedido.cPaqueteria.ToLower().Trim()).FirstOrDefault();
                        cEstadoPedido = empresaPedido.ObtenerEstadoPaquete(pedido, verificadorEstadoPaquete);
                        cRangoTiempo  = empresaPedido.CalcularRangoTiempo(pedido, dtActual, rangoTiempo);
                        cCosto        = empresaPedido.ObtenerCosto(pedido.dDistancia, verificadorEstadoPaquete);

                        AplicarColorPorPedido(verificadorEstadoPaquete.VerificarPaqueteEntregado(), contextColor);
                        cRespuesta = $"{cEstadoPedido} {cRangoTiempo} {cCosto} (cualquier reclamaciĆ³n con {empresaPedido.empresaDTO.cNombre}).";

                        string cOpcionEconomica = verificadorEconomico.ObtenerOpcionMasEconomica(empresaPedido, lstEmpresas, pedido.dDistancia);
                        if (!string.IsNullOrWhiteSpace(cOpcionEconomica))
                        {
                            cRespuesta += $"\n*{cOpcionEconomica}";
                        }
                    }
                    else
                    {
                        AplicarColorValidacion(contextColor);
                    }

                    presentador.MostrarDatos(cRespuesta);
                }
            }
            catch (Exception excepcion)
            {
                presentador.MostrarDatos(excepcion.Message.Trim());
            }
        }