示例#1
0
        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));
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
        }
示例#4
0
        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);
            }
        }
示例#5
0
        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);
        }
示例#6
0
        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;
            }
        }
示例#8
0
        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);
        }
示例#9
0
        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);
        }
示例#10
0
        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);
        }
示例#11
0
        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;
        }
示例#12
0
        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);
        }
示例#13
0
        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));
        }
示例#14
0
 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
     });
 }
示例#15
0
        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);
        }
示例#16
0
        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);
        }
示例#17
0
        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);
        }
示例#18
0
        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);
        }
示例#19
0
        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());
        }
示例#20
0
        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());
        }
示例#21
0
        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);
        }
示例#22
0
        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);
        }
示例#23
0
 public Mensaje(SolicitudEnvio solicitudEnvio)
 {
     SolicitudEnvio = solicitudEnvio;
     AsignarColores();
 }