public void AsignarSiguiente_ValidaExistencia_ObtieneSiguiente() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cOrigen = "Merida,Motul"; Doc_Solicitudes.cDestino = "Merida,Motul"; Doc_Solicitudes.cTiempo = "10 Horas"; Doc_Solicitudes.dCostosEnvio = 480.00M; Doc_Solicitudes.cPaqueteria = "Fedex"; Doc_Solicitudes.cTransporte = "Terrestre"; Doc_Solicitudes.dDistancia = 250; Doc_Solicitudes.dtFechaEntrega = DateTime.ParseExact("11/04/2020 12:00", "dd/MM/yyyy HH:mm", culture); Doc_Solicitudes.dtFechaActual = DateTime.ParseExact("06/05/2020 12:00", "dd/MM/yyyy HH:mm", culture); var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); var Sut = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); var DOC_Envios = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); Sut.AsignarSiguiente(DOC_Envios); Assert.IsInstanceOfType(Sut.Siguiente, typeof(Envios)); }
public void ObtenerPaquetes(ref List <SolicitudEnvio> _lstEnvios) { decimal dDistancia = 0; string cFechaPedido = string.Empty; StreamReader reader = new StreamReader(File.OpenRead(AppDomain.CurrentDomain.BaseDirectory + "../../Envios.csv"), Encoding.GetEncoding("windows-1254"), true); while (!reader.EndOfStream) { var cEnvios = reader.ReadLine().Split(','); SolicitudEnvio solicitud = new SolicitudEnvio(); dDistancia = 0; solicitud.cPaqueteria = cEnvios[1]; solicitud.cTransporte = cEnvios[2]; cFechaPedido = cEnvios[3]; solicitud.dtFechaEnvio = DateTime.Parse(cFechaPedido, culture); solicitud.cOrigen = cEnvios[4] + "," + cEnvios[5]; solicitud.cDestino = cEnvios[6] + "," + cEnvios[7]; solicitud.dtFechaActual = DateTime.Now; if (!decimal.TryParse(cEnvios[0], out dDistancia)) { dDistancia = 0; } solicitud.dDistancia = dDistancia; _lstEnvios.Add(solicitud); } }
public void BuscarOtrasOpciones_ExisteOtraOpcion_RegresaDosRegistros() { Dictionary <string, decimal> LstPares = new Dictionary <string, decimal>(); IFormatProvider culture = new CultureInfo("ES-MX", true); var Doc_Solicitudes = new SolicitudEnvio(); var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); var Doc_TransporteExtra = new Mock <ITransporte>(); var Doc_PaqueteExtra = new Mock <IPaqueteria>(); Doc_Paquete.Setup(x => x.ObtenerPaqueteria()).Returns("Fedex"); Doc_Transporte.Setup(x => x.ObtenerCostoEnvio()).Returns(2000M); Doc_PaqueteExtra.Setup(x => x.ObtenerPaqueteria()).Returns("DHL"); Doc_TransporteExtra.Setup(x => x.ObtenerCostoEnvio()).Returns(1000M); var DOC_Envios = new Envios(Doc_PaqueteExtra.Object, Doc_TransporteExtra.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); SUT.Siguiente = DOC_Envios; SUT.BuscarOtrasOpciones(ref LstPares); Assert.AreEqual(2, LstPares.Count); }
public void ObtenerPaquetes(ref List <SolicitudEnvio> _lstEnvios) { decimal dDistancia = 0; string cFechaPedido = string.Empty; StreamReader reader = new StreamReader(File.OpenRead(AppDomain.CurrentDomain.BaseDirectory + "../../Pedidos.json")); var cEnvios = reader.ReadToEnd(); JObject parsed = JObject.Parse(cEnvios); var JSonPedidos = parsed["Pedidos"]; foreach (var Envio in JSonPedidos) { SolicitudEnvio solicitud = new SolicitudEnvio(); dDistancia = 0; solicitud.cPaqueteria = Envio["Empresa"].ToString(); solicitud.cTransporte = Envio["MedioTrans"].ToString(); cFechaPedido = Envio["FechaPedido"].ToString().Replace("-", "/"); solicitud.dtFechaEnvio = DateTime.Parse(cFechaPedido, culture); solicitud.cOrigen = Envio["Procedencia"].ToString(); solicitud.cDestino = Envio["Destino"].ToString(); solicitud.dtFechaActual = DateTime.Now; if (!decimal.TryParse(Envio["Dist_KM"].ToString(), out dDistancia)) { dDistancia = 0; } solicitud.dDistancia = dDistancia; _lstEnvios.Add(solicitud); } }
public void GenerarMensaje_EnCamino_Mensaje() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cOrigen = "Merida,Motul"; Doc_Solicitudes.cDestino = "Merida,Motul"; Doc_Solicitudes.cTiempo = "10 Horas"; Doc_Solicitudes.dCostosEnvio = 480.00M; Doc_Solicitudes.cPaqueteria = "Fedex"; string Respuesta = string.Format("Tu paquete ha salido de {0} y llegará a {1} " + "dentro de {2} y tendrá un costo de ${3}" + "(Cualquier reclamación con {4}).", "México" + "," + "Merida", "México" + "," + "Merida", "10 Horas", 480.00M, "Fedex"); var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); var Doc_Mensaje = new Mock <IMensajesColor>(); Doc_Mensaje.Setup(x => x.ImprimirMensajeEnvio()).Returns(Respuesta); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); SUT.Mensaje = Doc_Mensaje.Object; var Mensajes = SUT.GenerarMensaje(); Assert.AreEqual(Respuesta, Mensajes); }
public BaseDTO AgregarSolicitudEnvio(string desUbicacion, DateTime fecEnvio, DateTime fecRecibo, int idOrdenCompra, int indEstado, decimal mtoPctComision) { try { var solicitudEnvio = new SolicitudEnvio { DesUbicEnvio = desUbicacion, FecEnvio = fecEnvio, FecRecibo = fecRecibo, FkOrdenCompra = idOrdenCompra, IndEstado = indEstado, MtoPctComision = mtoPctComision }; contexto.SolicitudEnvios.Add(solicitudEnvio); var guardado = contexto.SaveChanges(); if (guardado > 0) { return(new RespuestaDTO { CodigoRespuesta = 1, ContenidoRespuesta = guardado, Mensaje = "Los datos se guardaron correctamente" }); } else { throw new Exception("No se pudo guardar la Solicitud de Envio, por favor revisar los datos suministrados"); } // return true; } catch (Exception error) { if (error.Message.Contains("ERROR controlado")) { return(new RespuestaDTO { CodigoRespuesta = -1, ContenidoRespuesta = new ErrorDTO { MensajeError = error.Message } }); } else { return(new RespuestaDTO { CodigoRespuesta = -1, ContenidoRespuesta = new ErrorDTO { MensajeError = "ERROR NO CONTROLADO" + error.InnerException } }); } } }
public FactoryEnvios(SolicitudEnvio _solicitudEnvio, ConfiguracionesDTO _configuraciones) { SolicitudEnvio = _solicitudEnvio; PaqueteriaCompetencia = new List <IPaqueteria>(); Tiempos = crearformatosTiempo(); Mensajes = new ErrorMensaje(); switch (SolicitudEnvio.cPaqueteria) { case "Fedex": Paqueteria = new Fedex(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionFedex); PaqueteriaCompetencia.Add(new DHL(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionDHL)); PaqueteriaCompetencia.Add(new Estafeta(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionEstafeta)); break; case "DHL": Paqueteria = new DHL(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionDHL); PaqueteriaCompetencia.Add(new Fedex(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionFedex)); PaqueteriaCompetencia.Add(new Estafeta(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionEstafeta)); break; case "Estafeta": Paqueteria = new Estafeta(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionEstafeta); PaqueteriaCompetencia.Add(new Fedex(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionFedex)); PaqueteriaCompetencia.Add(new DHL(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionDHL)); break; default: throw new Exception(string.Format(Mensajes.ImprimirMensajeEnvio(), MostrarValidacionPaqueteria())); break; } if (!Paqueteria.ValidarTransporte()) { throw new Exception(string.Format(Mensajes.ImprimirMensajeEnvio(), MostrarValidaciontransporte())); } switch (SolicitudEnvio.cTransporte) { case "Marítimo": Transporte = new Maritimo(SolicitudEnvio.dDistancia, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionMaritimo); break; case "Terrestre": Transporte = new Terrestre(SolicitudEnvio.dDistancia, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionTerrestre); break; case "Aéreo": Transporte = new Aereo(SolicitudEnvio.dDistancia, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionAereo); break; default: throw new Exception(string.Format(Mensajes.ImprimirMensajeEnvio(), MostrarValidaciontransporte())); break; } }
public void FactoryEnvios_FedexSubmarino_ExceptionTransporteNoRegistrada() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cPaqueteria = "Fedex"; Doc_Solicitudes.cTransporte = "Submarino"; var SUT = Assert.ThrowsException <Exception>(() => new FactoryEnvios(Doc_Solicitudes, configuraciones)); Assert.AreEqual("Fedex no ofrece el servicio de transporte Submarino, te recomendamos cotizar en otra empresa.", SUT.Message); }
public void GenerarMensajeMejorOpcion_Opcionencontrada_MensajeFedexSeiscientos() { var Doc_Solicitudes = new SolicitudEnvio(); var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); string Resultado = SUT.GenerarMensajeMejorOpcion("Fedex", 600); Assert.AreEqual("Si hubieras pedido en Fedex te hubiera costado 600 más barato.", Resultado); }
public void FactoryEnvios_FedezTerrestre_ExceptionPaqueteriaNoRegistrada() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cPaqueteria = "Fedez"; Doc_Solicitudes.cTransporte = "Terrestre"; var SUT = Assert.ThrowsException <Exception>(() => new FactoryEnvios(Doc_Solicitudes, configuraciones)); Assert.AreEqual("La Paquetería: Fedez no se encuentra registrada en nuestra red de distribución.", SUT.Message); }
public Envios(IPaqueteria _Paqueteria, ITransporte _Transporte, IFormatoTiempo _FormatoTiempo, SolicitudEnvio _solicitudEnvio) { solicitudEnvio = _solicitudEnvio; Paqueteria = _Paqueteria; cPaqueteria = solicitudEnvio.cPaqueteria; FormatoTiempo = _FormatoTiempo; this.LstOpciones = new Dictionary <string, decimal>(); this.Transporte = _Transporte; }
public void AsignarColores_Entregado_Verde() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cOrigen = "Merida,Motul"; Doc_Solicitudes.cDestino = "Merida,Motul"; Doc_Solicitudes.cTiempo = "10 Horas"; Doc_Solicitudes.dCostosEnvio = 480.00M; Doc_Solicitudes.cPaqueteria = "Fedex"; var Color = ConsoleColor.Green; var SUT = new Mensaje(Doc_Solicitudes); Assert.AreEqual(Color, Console.ForegroundColor); }
public void CrearEnvio_DHLTerrestre_NoException() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cOrigen = "Merida,Motul"; Doc_Solicitudes.cDestino = "Merida,Motul"; Doc_Solicitudes.cTiempo = "10 Horas"; Doc_Solicitudes.dCostosEnvio = 480.00M; Doc_Solicitudes.cPaqueteria = "DHL"; Doc_Solicitudes.cTransporte = "Terrestre"; var SUT = new FactoryEnvios(Doc_Solicitudes, configuraciones); var Respuesta = SUT.CrearEnvio(); Assert.IsInstanceOfType(Respuesta, typeof(Envios)); }
internal static SolicitudEnvioDTO ConvertirDatosSolicitudEnvioADTO(SolicitudEnvio solicitudEnvio) { return(new SolicitudEnvioDTO { // OrdenCompraAsociada = (solicitudEnvio.FkOrdenCompraNavigation != null ? SolicitudCompraLogica.ConvertirDatosOrdenCompraADTO(solicitudEnvio.FkOrdenCompraNavigation) : null), OrdenCompraAsociada = new SolicitudCompraDTO { IdEntidad = solicitudEnvio.FkOrdenCompra }, EstadoSolicEnvio = solicitudEnvio.IndEstado, FecEnvio = solicitudEnvio.FecEnvio, FechaRecibido = solicitudEnvio.FecRecibo, UbicacionEnvio = solicitudEnvio.DesUbicEnvio, IdEntidad = solicitudEnvio.PkSolicitudEnvio, MtoPctComision = solicitudEnvio.MtoPctComision }); }
public void BuscarOtrasOpciones_UnicoExistente_RegresaunRegistro() { Dictionary <string, decimal> LstPares = new Dictionary <string, decimal>(); var Doc_Solicitudes = new SolicitudEnvio(); var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); var Doc_Mensaje = new Mock <IMensajesColor>(); Doc_Paquete.Setup(x => x.ObtenerPaqueteria()).Returns(""); Doc_Transporte.Setup(x => x.ObtenerCostoEnvio()).Returns(2000M); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); SUT.BuscarOtrasOpciones(ref LstPares); Assert.AreEqual(1, LstPares.Count); }
public void ObtenerFechaentrega_DosMarzoOchoPMMasSetentaMinutos_DosMarzoNuevePMDiezminutos() { var Doc_Solicitudes = new SolicitudEnvio(); var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); IFormatProvider culture = new CultureInfo("ES-MX", true); Doc_Solicitudes.dtFechaEnvio = DateTime.ParseExact("02/03/2020 20:00", "dd/MM/yyyy HH:mm", culture); Doc_Transporte.Setup(x => x.ObtenerTiempoEntregaMinutos()).Returns(50M); Doc_Paquete.Setup(x => x.ObtenerTiempoRepartoMinutos()).Returns(20M); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); var Resultado = SUT.ObtenerFechaentrega(); Assert.AreEqual(DateTime.ParseExact("02/03/2020 21:10", "dd/MM/yyyy HH:mm", culture), Resultado); }
public void ObtenerCostos_FedexTerrestreMesInpar_TresMilQuinientos() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cPaqueteria = "Fedex"; Doc_Solicitudes.cTransporte = "Terrestre"; Doc_Solicitudes.dDistancia = 250; var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); Doc_Paquete.Setup(x => x.ObtenerUtilidad()).Returns(.30M); Doc_Transporte.Setup(x => x.ObtenerCostoEnvio()).Returns(2500M); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); decimal Respuesta = SUT.ObtenerCostos(); Assert.AreEqual(3250M, Respuesta); }
public void SeleccionarOpcion_DHLMilDoscientos_FedexSeiscientos() { Dictionary <string, decimal> LstOpciones = new Dictionary <string, decimal>() { { "Fedex", 600 }, { "DHL", 1200 } }; var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.dCostosEnvio = 1200; Doc_Solicitudes.cPaqueteria = "DHL"; var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); var Result = SUT.SeleccionarOpcion(ref LstOpciones); Assert.AreEqual("\r\nSi hubieras pedido en Fedex te hubiera costado 600 más barato.", Result); }
public void ImprimirMensajeEnvio_Entregado_MensajeEntrega() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cOrigen = "México,Merida"; Doc_Solicitudes.cDestino = "México,Merida"; Doc_Solicitudes.cTiempo = "10 Horas"; Doc_Solicitudes.dCostosEnvio = 480.00M; Doc_Solicitudes.cPaqueteria = "Fedex"; var SUT = new Mensaje(Doc_Solicitudes); string Respuesta = string.Format("Tu paquete salió de {0} y llegó a {1} " + "hace {2} y tuvo un costo de ${3}" + "(Cualquier reclamación con {4}).", "México" + "," + "Merida", "México" + "," + "Merida", "10 Horas", 480.00M, "Fedex"); Assert.AreEqual(Respuesta, SUT.ImprimirMensajeEnvio()); }
public void ImprimirMensajeEnvio() { var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cOrigen = "Merida,Motul"; Doc_Solicitudes.cDestino = "Merida,Motul"; Doc_Solicitudes.cTiempo = "10 Horas"; Doc_Solicitudes.dCostosEnvio = 480.00M; Doc_Solicitudes.cPaqueteria = "Fedex"; var SUT = new MensajeEnCamino(Doc_Solicitudes); string Respuesta = string.Format("Tu paquete ha salido de {0} y llegará a {1} " + "dentro de {2} y tendrá un costo de ${3}" + "(Cualquier reclamación con {4}).", "Merida,Motul", "Merida,Motul", "10 Horas", 480.00M, "Fedex"); Assert.AreEqual(Respuesta, SUT.ImprimirMensajeEnvio()); }
public void EstatusEnvio_EnCamino_CambiaColorAmarillo() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.dtFechaEntrega = DateTime.ParseExact("06/05/2020 12:00", "dd/MM/yyyy HH:mm", culture); Doc_Solicitudes.dtFechaActual = DateTime.ParseExact("02/05/2020 12:00", "dd/MM/yyyy HH:mm", culture); var Color = ConsoleColor.Yellow; var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); SUT.EstatusEnvio(); Assert.AreEqual(Color, Console.ForegroundColor); }
public void ProcesarEnvios() { IFormatProvider culture = new CultureInfo("ES-MX", true); var Doc_Solicitudes = new SolicitudEnvio(); Doc_Solicitudes.cOrigen = "Merida,Motul"; Doc_Solicitudes.cDestino = "Merida,Motul"; Doc_Solicitudes.cPaqueteria = "Estafeta"; Doc_Solicitudes.cTransporte = "Terrestre"; Doc_Solicitudes.dDistancia = 80; Doc_Solicitudes.dtFechaEnvio = DateTime.ParseExact("23/01/2020 12:00", "dd/MM/yyyy HH:mm", culture); Doc_Solicitudes.dtFechaActual = DateTime.ParseExact("23/01/2020 14:00", "dd/MM/yyyy HH:mm", culture); string Respuesta = string.Format("Tu paquete salió de {0} y llegó a {1} " + "hace {2} y tuvo un costo de ${3}" + "(Cualquier reclamación con {4}).", "Merida,Motul", "Merida,Motul", "1 Hora", 1160.00M, "Estafeta"); var Doc_Transporte = new Mock <ITransporte>(); var Doc_Paquete = new Mock <IPaqueteria>(); var Doc_FormatoTiempo = new Mock <IFormatoTiempo>(); Doc_Paquete.Setup(x => x.ObtenerUtilidad()).Returns(.45M); Doc_Transporte.Setup(x => x.ObtenerCostoEnvio()).Returns(800M); Doc_Transporte.Setup(x => x.ObtenerTiempoEntregaMinutos()).Returns(60M); Doc_Paquete.Setup(x => x.ObtenerTiempoRepartoMinutos()).Returns(5M); Doc_FormatoTiempo.Setup(x => x.ObtenerFormatoTiempo(It.IsAny <decimal>())).Returns("1 Hora"); Doc_Paquete.Setup(x => x.ObtenerPaqueteria()).Returns("Estafeta"); var SUT = new Envios(Doc_Paquete.Object, Doc_Transporte.Object, Doc_FormatoTiempo.Object, Doc_Solicitudes); string Mensaje = SUT.ProcesarEnvios(); Assert.AreEqual(Respuesta, Mensaje); }
public Mensaje(SolicitudEnvio solicitudEnvio) { SolicitudEnvio = solicitudEnvio; AsignarColores(); }