public ICalcularTiempos CrearInstancia(int iTipoInstancia) { ICalcularTiempos calcularTiempos = null; switch (iTipoInstancia) { case 1: calcularTiempos = new CalculadorMes(); break; case 2: calcularTiempos = new CalculadorDias(); break; case 3: calcularTiempos = new CalculadorHoras(); break; case 4: calcularTiempos = new CalculadorMinutos(); break; } return(calcularTiempos); }
public void CalculadorHoras_LlamarMetodoDeHoras_VerificarMensaje(string cTiempo, string cResultado) { CalculadorHoras calculadorHoras = new CalculadorHoras(); string result = calculadorHoras.CalcularTiempo(TimeSpan.Parse(cTiempo)); Assert.AreEqual(result, cResultado); }
public void CrearListaDeMensaje_LLenarListaDeHora_VerificarLista() { ICalcularTiempos _creadorInstancia = new CalculadorHoras(); Mock <ICreadorInstancia> creadorInstancia = new Mock <ICreadorInstancia>(); creadorInstancia.Setup(x => x.CrearInstancia(It.IsAny <int>())).Returns(_creadorInstancia); MensajeRepositorio mensajeRepositorio = new MensajeRepositorio(creadorInstancia.Object) { Obtenerfecha = () => new DateTime(1, 2, 12, 12, 12, 12) }; List <EventosEntidad> lstEventos = new List <EventosEntidad> { new EventosEntidad { cNombreEvento = "Dia bot", dtTiempoEvento = new DateTime(1, 2, 12, 11, 12, 12) } }; var lstMensajesEventos = mensajeRepositorio.CrearListaDeMensaje(lstEventos); Assert.AreEqual("Dia bot ocurrió hace 1 hora", lstMensajesEventos[0]); }
static void Main(string[] args) { ContenedorDependencias contenedor = new ContenedorDependencias(); IServiceProvider services = contenedor.Services(); var instancia = services.GetService <ICrearInstanciaPaqueteriaFactory>(); var ObtenerMasBarata = services.GetService <IObtenerMensajeMejorPaqueteria>(); var validaPaqueteria = services.GetService <IValidarPaqueteria>(); var validaMedioTransporte = services.GetService <IValidarMedioTransporte>(); var EvaluadorFormatearMsg = services.GetService <IEvaluadorEstrategiaFormatearMensajeEnvio>(); var ObtenerRangoTiempo = services.GetService <IConvertirTiempo>(); LectorCSV objLecto = new LectorCSV(); LectorJson objJson = new LectorJson(); string cClave = "JSON"; List <ParametrosDTO> lstDatosCsv = new List <ParametrosDTO>(); ParametrosDTO imprimir = new ParametrosDTO(); List <IMensajeEnvio> lstEstrategias = new List <IMensajeEnvio>(); List <ILectorArchivos> lstEstrategiasArchivo = new List <ILectorArchivos>(); lstEstrategias.Add(new MensajesPaqueteriaFuturo(new List <string>(), new MensajeEnvioDTO(), new MensajesColoresDTO())); lstEstrategias.Add(new MensajesPaqueteriaPasado(new List <string>(), new MensajeEnvioDTO(), new MensajesColoresDTO())); lstEstrategiasArchivo.Add(new LectorCSV()); lstEstrategiasArchivo.Add(new LectorJson()); ObtenerConfiguración config = new ObtenerConfiguración(); List <Configuracion> configuracion = config.ObtenerDatos(); var obtenerArchivo = lstEstrategiasArchivo.FirstOrDefault(c => c.cTipoArchivo == cClave); lstDatosCsv = obtenerArchivo.ObtenerDatosDTO(); string[] cPaqueterias = { "FEDEX", "DHL", "ESTAFETA" }; foreach (var x in lstDatosCsv) { List <IEmpresa> paqueterias = instancia.CrearInstancia(x.cMedioTransporte, configuracion); List <ParametrosDTO> lstResultados = new List <ParametrosDTO>(); string cPaqueteria = x.cPaqueteria; string cMedioTransporte = x.cMedioTransporte; if (paqueterias != null) { foreach (var i in paqueterias) { ParametrosDTO parametro = new ParametrosDTO(); parametro = i.ObtenerDatosPaqueteria(x); lstResultados.Add(parametro); } } Dictionary <string, double> lstTiempos = new Dictionary <string, double>(); string cValidaPaqueteria = validaPaqueteria.ValidarPaqueteria(paqueterias, cPaqueteria, cPaqueterias); if (cValidaPaqueteria != "") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(cValidaPaqueteria + "\n"); continue; } string cValidarMedioTransporte = validaMedioTransporte.ValidarMedioTransporte(paqueterias, cPaqueteria, cMedioTransporte); if (cValidarMedioTransporte != "") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(cValidarMedioTransporte + "\n"); continue; } imprimir = lstResultados.Where(i => i.cPaqueteria == cPaqueteria).Select(y => y).FirstOrDefault(); string cClaveEstrategia = EvaluadorFormatearMsg.ObtenerClaveEstrategia(imprimir.dtFechaEntrega); var ObtenerMensaje = lstEstrategias.FirstOrDefault(c => c.cConjugacion == cClaveEstrategia); TimeSpan difFechas = DateTime.Now - imprimir.dtFechaEntrega; double dTotalMinutos = Math.Abs(difFechas.TotalMinutes); IConvertirTiempo h1 = new CalculadorMinutos(); IConvertirTiempo h2 = new CalculadorHoras(); IConvertirTiempo h3 = new CalculadorDias(); IConvertirTiempo h4 = new CalculadorSemanas(); IConvertirTiempo h5 = new CalculadorMeses(); IConvertirTiempo h6 = new CalculadorBimestre(); IConvertirTiempo h7 = new CalculadorAnios(); h1.setNext(h2); h2.setNext(h3); h3.setNext(h4); h4.setNext(h5); h5.setNext(h6); h6.setNext(h7); h1.ObtenerTiempo(dTotalMinutos, lstTiempos); MensajesColoresDTO Mensaje = ObtenerMensaje.FormatearMensaje(lstTiempos, imprimir); Console.ForegroundColor = (ConsoleColor)System.Enum.Parse(typeof(ConsoleColor), Mensaje.cColor); Console.Write(Mensaje.cMensaje + "\n"); string cOpcionMaBarata = ObtenerMasBarata.ImprimirMensajePaqueteriaMasBarata(lstResultados, imprimir); if (cOpcionMaBarata != "") { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(cOpcionMaBarata + "\n"); } } Console.ReadKey(); }