public void CrearInstancia_ObtenerInstanciaDHL_InsanciaDeTipoTiempoRepartoDHL() { //Arrange //var docContainer = new Mock<IContainer>(); //docContainer.Setup(doc => doc.GetInstance<ITiempoReparto>(It.IsAny<string>())).Returns(new TiempoRepartoDHL()); var docContainer = Container.For <DI_Dependencias>();//Según lo que comentó Pedrusco(pruebas amigables) se puede hacer así también. TiempoRepartoFactory SUT = new TiempoRepartoFactory(docContainer); //Act ITiempoReparto tiempoRepartoDHL = SUT.CrearInstancia(EnumEmpresa.DHL); //Assert Assert.IsInstanceOfType(tiempoRepartoDHL, typeof(TiempoRepartoDHL)); }
public ITiempoReparto CrearInstancia(EnumEmpresa enumEmpresa) { string cNombreInstancia = string.Empty; switch (enumEmpresa) { case EnumEmpresa.Fedex: cNombreInstancia = "Fedex"; break; case EnumEmpresa.DHL: cNombreInstancia = "DHL"; break; case EnumEmpresa.Estafeta: cNombreInstancia = "Estafeta"; break; } ITiempoReparto tiempoReparto = container.GetInstance <ITiempoReparto>(cNombreInstancia);//Pendiente llenar los pedidos DTO return(tiempoReparto); }
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); }
public ObtenedorTiempoReparto(ITiempoReparto tiempoReparto) { this.tiempoReparto = tiempoReparto ?? throw new ArgumentNullException(nameof(tiempoReparto)); }
public TiempoEntrega(ITiempoTraslado _tiempoTraslado, ITiempoReparto _tiempoReparto) { tiempoTraslado = _tiempoTraslado ?? throw new System.ArgumentNullException(nameof(_tiempoTraslado)); tiempoReparto = _tiempoReparto ?? throw new System.ArgumentNullException(nameof(_tiempoReparto)); }