public void Ejecutar_EnviarFechaEntregaIgualAFechaHoy_MinutosRestantes() { //Arrange string cResultado = ""; Expresion5 expresion5 = new Expresion5(); lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1 }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); DateTime dtEntrega = Convert.ToDateTime("27-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 2000, fedex, barco, dtHoy); //Act cResultado = expresion5.Ejecutar(dtEntrega, dtHoy, entPedido); //Assert Assert.AreEqual("0 Minutos", cResultado); }
public void PedidoEntregado_EnviarStateActivado_EntPedidoAcrualizado() { //Arrange ActivarState activarState = new ActivarState(); DesactivarState DesactivarPedido = new DesactivarState(); lEnvios barco = new Maritimo() { dVelocidadEntrega = 46, dCostoEnvio = 1 }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); DateTime dtHoy = Convert.ToDateTime("27-01-2020 12:00:00"); DateTime dtEntrega = Convert.ToDateTime("28-01-2020 12:00:00"); State entPedido = new State(DesactivarPedido, "México", "USA", 5000, fedex, barco, dtHoy); activarState.setContext(entPedido); //Act activarState.PedidoEntregado(); //Assert Assert.IsTrue(entPedido.state != activarState); }
static void Main(string[] args) { IPaqueteria svrPaqueteriaFedex = new Fedex(); IPaqueteria svrPaqueteriaDHL = new DHL(); IPaqueteria svrPaqueteriaEstafeta = new Estafeta(); TransportadorBridge svrTransportador = new TransportadorBarco(svrPaqueteriaFedex); Console.WriteLine("Paqueteria Fedex"); svrTransportador.Procesar(); Console.WriteLine("Paqueteria DHL"); svrTransportador = new TransportadorAvion(svrPaqueteriaDHL); svrTransportador.Procesar(); svrTransportador = new TransportadorBarco(svrPaqueteriaDHL); svrTransportador.Procesar(); Console.WriteLine("Paqueteria Estafeta"); svrTransportador = new TransportadorTren(svrPaqueteriaEstafeta); svrTransportador.Procesar(); Console.Write("Presiona cualquier tecla para salir del programa oks..."); Console.ReadKey(); }
static void Main(string[] args) { //setup our DI var serviceProvider = new ServiceCollection() .AddScoped(typeof(IClockReader), typeof(Clock)) .AddScoped(typeof(IEnviosRepository), typeof(EnviosRepository)) .AddScoped <IPackageRepository, EnvioPackageRepositoryAdapter>(x => { EnvioPackageRepositoryAdapter envioPackageRepositoryAdapter = new EnvioPackageRepositoryAdapter(x.GetRequiredService <IEnviosRepository>()); envioPackageRepositoryAdapter.AddFactory(new EstafetaEnviosFactory(new Estafeta())); envioPackageRepositoryAdapter.AddFactory(new FedexEnviosFactory(new Fedex())); envioPackageRepositoryAdapter.AddFactory(new DhlEnviosFactory(new Dhl())); return(envioPackageRepositoryAdapter); }) .AddScoped(typeof(IRangoDeTiempoProvider), typeof(RangoDeTiempoProvider)) .AddScoped(typeof(ITimeChecker), typeof(TimeChecker)) .AddScoped(typeof(ICalculadorTiempoTraslado), typeof(CalculadorTiempoTraslado)) .AddScoped(typeof(ICalculadorDeFechaDeEntrega), typeof(DefaultCalculadorFechaEntrega)) .AddScoped(typeof(ICalculadorCostoEnvio), typeof(CalculadorCostoEnvio)) .AddScoped(typeof(IDeliveryManager), typeof(DeliveryManager)) .AddScoped(typeof(IDeliveryMessagePrinter), typeof(DeliveryMessagePrinter)) .AddScoped(typeof(IReporteadorDePedidos), typeof(ReporteadorDePedidos)) .BuildServiceProvider(); IReporteadorDePedidos reporteadorDePedidos = serviceProvider.GetRequiredService <IReporteadorDePedidos>(); IRangoDeTiempoProvider rangoDeTiempoProvider = serviceProvider.GetRequiredService <IRangoDeTiempoProvider>(); ICalculadorCostoEnvio calculadorCostoEnvio = serviceProvider.GetRequiredService <ICalculadorCostoEnvio>(); //Empresas Estafeta estafeta = new Estafeta(); Fedex fedex = new Fedex(); Dhl dhl = new Dhl(); reporteadorDePedidos.AddEmpresa(estafeta); reporteadorDePedidos.AddEmpresa(fedex); reporteadorDePedidos.AddEmpresa(dhl); reporteadorDePedidos.AddStrategy( PackageStatus.entregado, new EntregadoStrategy(rangoDeTiempoProvider, calculadorCostoEnvio)); reporteadorDePedidos.AddStrategy( PackageStatus.enCamino, new PorEntregarStrategy(rangoDeTiempoProvider, calculadorCostoEnvio)); reporteadorDePedidos.AddStrategy(PackageStatus.unknown, new UnsupportedMetodoEnvioStrategy()); reporteadorDePedidos.AddStrategy(PackageStatus.unsupported, new EmpresaDesconocidaStrategy()); RecomendacionReporteadorPedidosDecorator recomendacionReporteadorPedidosDecorator = new RecomendacionReporteadorPedidosDecorator(reporteadorDePedidos, serviceProvider.GetRequiredService <IPackageRepository>(), serviceProvider.GetRequiredService <ICalculadorCostoEnvio>()); recomendacionReporteadorPedidosDecorator.AddEmpresa(estafeta); recomendacionReporteadorPedidosDecorator.AddEmpresa(fedex); recomendacionReporteadorPedidosDecorator.AddEmpresa(dhl); recomendacionReporteadorPedidosDecorator.AddStrategy( PackageStatus.entregado, new EntregadoStrategy(rangoDeTiempoProvider, calculadorCostoEnvio)); recomendacionReporteadorPedidosDecorator.AddStrategy( PackageStatus.enCamino, new PorEntregarStrategy(rangoDeTiempoProvider, calculadorCostoEnvio)); recomendacionReporteadorPedidosDecorator.AddStrategy(PackageStatus.unknown, new UnsupportedMetodoEnvioStrategy()); recomendacionReporteadorPedidosDecorator.AddStrategy(PackageStatus.unsupported, new EmpresaDesconocidaStrategy()); recomendacionReporteadorPedidosDecorator.ReportAll(); }
public EstafetaEnviosFactory(Estafeta estafeta) { DeliveryCompany = estafeta; }
public void OnSetup() { Estafeta estafeta = new Estafeta(); _estafetaEnviosFactory = new EstafetaEnviosFactory(estafeta); }