コード例 #1
0
        public void ObtenerMensajePedidoPaquete_PedidoDHLAereo100KM_MensajeConInformacionPedidoCorrecto()
        {
            //Arrange.
            PedidoDTO     pedido             = CrearEntidadPedidoDTOPrueba();
            decimal       dMinutosEntrega    = 172800M;
            decimal       dCostoEnvio        = 6829800;
            List <string> lstMensajeEsperado = new List <string>();
            string        cMensajeEsperado   = "Tu paquete ha salido de Pekin, China y llegará a Cancún, México dentro de 4 meses y tendrá un costo de $6,829,800(Cualquier reclamación con DHL).";

            lstMensajeEsperado.Add(cMensajeEsperado);
            var docConjugacionesMensajeFechaEntrega = new Mock <IConjugacionesMensajeFechaEntrega>();

            docConjugacionesMensajeFechaEntrega.Setup(doc => doc.ObtenerConjugacionSalida(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns("ha salido"); docConjugacionesMensajeFechaEntrega.Setup(doc => doc.ObtenerConjugacionLlegada(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns("llegará");
            docConjugacionesMensajeFechaEntrega.Setup(doc => doc.ObtenerConjugacionLapsoTiempo(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns("dentro de");
            docConjugacionesMensajeFechaEntrega.Setup(doc => doc.ObtenerConjugacionTener(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns("tendrá");
            DateTime dtFechaEntrega         = new DateTime(2020, 5, 12, 14, 10, 12);
            DateTime dtFechaActual          = new DateTime(2020, 1, 23, 14, 00, 00);
            var      docCadenaTiempoEntrega = new Mock <ICadenaTiempoEntrega>();

            docCadenaTiempoEntrega.Setup(doc => doc.ObtenerCadenaTiempoEntrega(It.IsAny <decimal>())).Returns("4 meses");

            var docCadenaCostoEnvio = new Mock <ICadenaCostoEnvio>();

            docCadenaCostoEnvio.Setup(doc => doc.ObtenerCadenaCostoEnvio(It.IsAny <decimal>())).Returns("$6,829,800");
            //Act.
            MensajePedidoPaquete SUT = new MensajePedidoPaquete(docConjugacionesMensajeFechaEntrega.Object, docCadenaTiempoEntrega.Object, docCadenaCostoEnvio.Object);
            string cMensajeCorrecto  = SUT.ObtenerMensajePedidoPaquete(pedido, dtFechaEntrega, dtFechaActual, dMinutosEntrega, dCostoEnvio);

            //Assert.
            Assert.AreEqual(cMensajeEsperado, cMensajeCorrecto);
        }
コード例 #2
0
        private static MensajePedidoPaquete ObtenerInstanciaMensajePedidoPaquete()
        {
            ConjugacionesMensajeFechaEntrega conjugacionesMensajeFechaEntrega = new ConjugacionesMensajeFechaEntrega();
            CadenaTiempoEntrega  cadenaTiempoEntrega  = new CadenaTiempoEntrega();
            ICadenaCostoEnvio    cadenaCostoEnvio     = new CadenaCostoEnvioPesos();
            MensajePedidoPaquete mensajePedidoPaquete = new MensajePedidoPaquete(conjugacionesMensajeFechaEntrega, cadenaTiempoEntrega, cadenaCostoEnvio);

            return(mensajePedidoPaquete);
        }
コード例 #3
0
        private static List <string> ObtenerMensajesPedido(List <PedidoDTO> _lstPedidoDTO)
        {
            DateTime              dtFechaActual         = new DateTime(2020, 1, 23, 14, 0, 0);
            var                   docContainer          = Container.For <DI_Dependencias>();
            TiempoRepartoFactory  tiempoRepartoFactory  = new TiempoRepartoFactory(docContainer);
            TiempoTrasladoFactory tiempoTrasladoFactory = new TiempoTrasladoFactory();
            MensajePedidoPaquete  mensajePedidoPaquete  = ObtenerInstanciaMensajePedidoPaquete();
            CostoEnvioFactory     costoEnvioFactory     = new CostoEnvioFactory(docContainer);
            List <string>         lstInformacionPedido  = new List <string>();

            foreach (PedidoDTO pedido in _lstPedidoDTO)
            {
                ITiempoReparto  tiempoReparto  = tiempoRepartoFactory.CrearInstancia(pedido.enumEmpresa);
                ITiempoTraslado tiempoTraslado = tiempoTrasladoFactory.CrearInstancia(pedido.enumMedioTransporte);
                ITiempoEntrega  tiempoEntrega  = new TiempoEntrega(tiempoTraslado, tiempoReparto);
                IFechaEntrega   fechaEntrega   = new FechaEntrega();
                ICostoEnvio     costoEnvio     = costoEnvioFactory.CrearInstancia(pedido.enumMedioTransporte, pedido.cIdentificadorEmpresa);
                ProcesadorInformacionPedidoPaquete procesadorInformacionPedidoPaquete = new ProcesadorInformacionPedidoPaquete(mensajePedidoPaquete, tiempoEntrega, fechaEntrega, costoEnvio);
                lstInformacionPedido.Add(procesadorInformacionPedidoPaquete.ObtenerInformacionPedidoPaquete(pedido, dtFechaActual));
            }
            return(lstInformacionPedido);
        }