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); }
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); }
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); }