示例#1
0
        public void ObtenerInformacionPedidoPaquete_PedidoDHLAereo100KM_MensajeConInformacionPedido()
        {
            //Arrange
            PedidoDTO pedido        = CrearEntidadPedidoDTOPrueba();
            DateTime  dtFechaActual = DateTime.Now;

            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).";

            var docMensajePedidoPaquete = new Mock <IMensajePedidoPaquete>();

            docMensajePedidoPaquete.Setup(doc => doc.ObtenerMensajePedidoPaquete(It.IsAny <PedidoDTO>(), It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <decimal>(), It.IsAny <decimal>())).Returns(cMensajeEsperado);
            var docTiempoEntrega = new Mock <ITiempoEntrega>();

            docTiempoEntrega.Setup(doc => doc.ObtenerTiempoEntrega(It.IsAny <decimal>(), It.IsAny <EnumMedioTransporte>())).Returns(172800M);

            var docFechaEntrega = new Mock <IFechaEntrega>();

            docFechaEntrega.Setup(doc => doc.ObtenerFechaEntrega(It.IsAny <DateTime>(), It.IsAny <int>())).Returns(new DateTime(2020, 1, 23, 14, 0, 0));

            var docCostoEnvio = new Mock <ICostoEnvio>();

            docCostoEnvio.Setup(doc => doc.ObtenerCostoEnvio(It.IsAny <EnumEmpresa>(), It.IsAny <DateTime>(), It.IsAny <decimal>())).Returns(6829800M);
            //Act
            ProcesadorInformacionPedidoPaquete SUT = new ProcesadorInformacionPedidoPaquete(docMensajePedidoPaquete.Object, docTiempoEntrega.Object, docFechaEntrega.Object, docCostoEnvio.Object);
            string cMensajeInformacion             = SUT.ObtenerInformacionPedidoPaquete(pedido, dtFechaActual);

            //Assert
            Assert.AreEqual(cMensajeEsperado, cMensajeInformacion);
        }
示例#2
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);
        }