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));
        }
예제 #2
0
        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);
        }
예제 #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);
        }
 public ObtenedorTiempoReparto(ITiempoReparto tiempoReparto)
 {
     this.tiempoReparto = tiempoReparto ?? throw new ArgumentNullException(nameof(tiempoReparto));
 }
예제 #5
0
 public TiempoEntrega(ITiempoTraslado _tiempoTraslado, ITiempoReparto _tiempoReparto)
 {
     tiempoTraslado = _tiempoTraslado ?? throw new System.ArgumentNullException(nameof(_tiempoTraslado));
     tiempoReparto  = _tiempoReparto ?? throw new System.ArgumentNullException(nameof(_tiempoReparto));
 }