public void Ejecutar(ref string[] _lstExpresion, Context _Context, DateTime _dtFechaEntrega, DateTime _dtHoy, Pedido _entPedido) { Expresion1 expresion1 = new Expresion1(); _Context.setStrategy(expresion1); _lstExpresion[0] = _Context.ValidarFechaEntrega(_dtFechaEntrega, _dtHoy, _entPedido); Expresion2 expresion2 = new Expresion2(); _Context.setStrategy(expresion2); _lstExpresion[1] = _Context.ValidarFechaEntrega(_dtFechaEntrega, _dtHoy, _entPedido); Expresion3 expresion3 = new Expresion3(); _Context.setStrategy(expresion3); _lstExpresion[2] = _Context.ValidarFechaEntrega(_dtFechaEntrega, _dtHoy, _entPedido); Expresion4 expresion4 = new Expresion4(); _Context.setStrategy(expresion4); _lstExpresion[3] = _Context.ValidarFechaEntrega(_dtFechaEntrega, _dtHoy, _entPedido); Expresion5 expresion5 = new Expresion5(); _Context.setStrategy(expresion5); _lstExpresion[4] = _Context.ValidarFechaEntrega(_dtFechaEntrega, _dtHoy, _entPedido); }
public void Ejecutar_EnviarFechaEntregaMenorAHoy_TextoEntregado() { //Arrange string cResultado = ""; Expresion1 expresion1 = new Expresion1(); lEnvios barco = new Barco() { dVelocidadEntrega = 46, dCostoEnvio = 1 }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); DateTime dtHoy = Convert.ToDateTime("29-01-2020 12:00:00"); DateTime dtEntrega = Convert.ToDateTime("28-01-2020 12:00:00"); State.State entPedido = new State.State(new DesactivarState(), "México", "USA", 5000, fedex, barco, Convert.ToDateTime("27-01-2020 12:00:00")); //Act cResultado = expresion1.Ejecutar(dtEntrega, dtHoy, entPedido); //Assert Assert.AreEqual("salió", cResultado); }
static void Main(string[] args) { lBuscarMejorOpcion buscarMejorOpcion = new BuscarMejorOpcion(); lAsignarDatosEnvio lasignarDatosEnvio = new AsignarDatosEnvio(); Context context = new Context(); lConvertirTipoDato convertirTipoDato = new CovertirTipoDatoService(); double dTiempoTraslado = 0; decimal TiempoTraslado = 0; decimal dCostoEnvio = 0; string cExpresion1 = ""; string cExpresion2 = ""; string cExpresion3 = ""; string cExpresion4 = ""; string cExpresion5 = ""; DateTime dtFechaEntrega = new DateTime(); DateTime dtHoy = DateTime.Now; lLeerArchivoTexto Lector = new LeerArchivoTexto(); lEmpresas empresa = null; lEnvios transporte = null; lEnvios aereo = new Avion() { dVelocidadEntrega = 600, dCostoEnvio = 10, cNombre = "Avion" }; lEnvios tren = new Tren() { dVelocidadEntrega = 80, dCostoEnvio = 5, cNombre = "Tren" }; lEnvios barco = new Barco() { dVelocidadEntrega = 46, dCostoEnvio = 1, cNombre = "Barco" }; lEnvios bici = new Bici() { dVelocidadEntrega = 1, dCostoEnvio = 3, cNombre = "Bici" }; lEmpresas fedex = new Estafeta(new List <lEnvios>() { barco }, 50, "Fedex"); lEmpresas dhl = new DHL(new List <lEnvios>() { aereo, barco }, 40, "DHL"); lEmpresas estafeta = new Estafeta(new List <lEnvios>() { tren }, 20, "Estafeta"); lEmpresas upc = new UPC(new List <lEnvios>() { bici }, 50, "UPC"); List <lEmpresas> lstEmpresas = new List <lEmpresas>() { fedex, dhl, estafeta, upc }; List <lEnvios> lstTransportes = new List <lEnvios>() { aereo, tren, barco, bici }; List <string> lines = Lector.LeerArchivo("Pedidos.txt"); foreach (string line in lines) { string[] cInformacion = line.Split(','); lasignarDatosEnvio.AsignarEmpresa(cInformacion[3], ref empresa, lstEmpresas); lasignarDatosEnvio.AsignarTransporte(cInformacion[4], ref transporte, lstTransportes); if (empresa != null) { Pedido initialState = new DesactivarState(); State.State entPedido = new State.State(initialState, cInformacion[0], cInformacion[1], convertirTipoDato.ConvertirStringADecimal(cInformacion[2]), empresa, transporte, Convert.ToDateTime(cInformacion[5])); initialState.setContext(entPedido); TiempoTraslado = empresa.TiempoTraslado(entPedido); if (TiempoTraslado > 0) { dTiempoTraslado = convertirTipoDato.ConvertirDecimalADouble(TiempoTraslado); dtFechaEntrega = empresa.FechaEntrega(dTiempoTraslado, entPedido); dCostoEnvio = empresa.CostoEnvio(entPedido); Console.WriteLine(buscarMejorOpcion.ObtenerMejorOpcion(lstEmpresas, empresa, entPedido, dCostoEnvio)); Expresion1 expresion1 = new Expresion1(); context.setStrategy(expresion1); cExpresion1 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion2 expresion2 = new Expresion2(); context.setStrategy(expresion2); cExpresion2 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion3 expresion3 = new Expresion3(); context.setStrategy(expresion3); cExpresion3 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion4 expresion4 = new Expresion4(); context.setStrategy(expresion4); cExpresion4 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); Expresion5 expresion5 = new Expresion5(); context.setStrategy(expresion5); cExpresion5 = context.ValidarFechaEntrega(dtFechaEntrega, dtHoy, entPedido); if (entPedido.state.ToString() == "State.ActivarState") { System.Console.ForegroundColor = ConsoleColor.Green; } else { System.Console.ForegroundColor = ConsoleColor.Yellow; } Console.WriteLine($"Tu paquete {cExpresion1} de {entPedido.cOrigen} y {cExpresion2} a {entPedido.cDestino} {cExpresion3} {cExpresion5} y {cExpresion4} un costo de {dCostoEnvio} (Cualquier reclamación con {cInformacion[3]})."); } } Console.WriteLine(); } Console.ReadLine(); }