public static void Main(string[] args) { CotacaoServico cotacaoServico = new CotacaoServico(new AvapiCotacaoServico(), new NotificacaoServico()); if (!ValidacaoServico.InputValido(args)) { Console.WriteLine("Erro dectectado nos inputs"); System.Environment.Exit(1); } if (!ValidacaoServico.InputAtivoValido(args[0])) { Console.WriteLine("Erro dectectado no input do ativo"); System.Environment.Exit(2); } if (!ValidacaoServico.InputPrecoValido(args[1], args[2])) { Console.WriteLine("Erro dectectado no input do preço"); System.Environment.Exit(3); } Console.WriteLine(args); Timer timer = null; timer = new Timer((e) => { if (cotacaoServico.IniciarServicoDeVigiaDePreco(args[0], args[1], args[2])) { timer.Dispose(); } }, null, TimeSpan.Zero, TimeSpan.FromMinutes(0.30)); Console.ReadLine(); //Hack to not stop console app }
public void EncontrarCotacaoMaisRecente_AtivoComCotacaoDoDiaAnterior_DeveRetornarCotacaoDoDiaAnteior() { var ativo = new Ativo() { Informacao = "A", Cotacoes = new List <Cotacao>(), Simbolo = "PETR4", TimeZone = "GMT-3", TipoOutput = "Compact", UltimaAtualizacao = DateTime.Now }; Cotacao cotacao = new Cotacao() { Abertura = 10.10f, DateTime = DateTime.Now.AddDays(-1), Fechamento = 10.10f, Maxima = 12.12f, Minima = 9.9f, Volume = 12637678 }; ativo.Cotacoes.Add(cotacao); var result = CotacaoServico.EncontrarCotacaoMaisRecente(ativo); Assert.AreEqual(result, cotacao); }
public void EncontrarCotacaoMaisRecente_AtivoSemCotacao_DeveRetornarNull() { var ativo = new Ativo() { Informacao = "A", Cotacoes = new List <Cotacao>(), Simbolo = "PETR4", TimeZone = "GMT-3", TipoOutput = "Compact", UltimaAtualizacao = DateTime.Now }; var result = CotacaoServico.EncontrarCotacaoMaisRecente(ativo); Assert.IsNull(result); }
public void IniciarServicoDeVigiaDePrecoTest_AtivoComCotacaoEntreOsValoresDesejados_DeveRetornarFalse() { var mockCotacaoServico = new Mock <IAvapiCotacaoServico>(); mockCotacaoServico.Setup(mock => mock.CotarPrecoAtivo("PETR4")).Returns(new Ativo() { Simbolo = "PETR4", Cotacoes = new List <Cotacao>() { new Cotacao() { Volume = 12687516, Abertura = 24.25f, DateTime = DateTime.Now, Fechamento = 24.72f, Maxima = 25.42f, Minima = 22.88f } }, Informacao = "Info", TimeZone = "GMT -3", TipoOutput = "Compact", UltimaAtualizacao = DateTime.Now }); var mockNotificacaoServico = new Mock <INotificacaoServico>(); mockNotificacaoServico.Setup(mock => mock.NotificarPreco("PETR4", "inferior", 22.00f)); var cotacaoServico = new CotacaoServico(mockCotacaoServico.Object, mockNotificacaoServico.Object); var result = cotacaoServico.IniciarServicoDeVigiaDePreco("PETR4", "26.30", "22.00"); mockCotacaoServico.Verify(x => x.CotarPrecoAtivo("PETR4"), Times.Once()); mockNotificacaoServico.Verify(x => x.NotificarPreco("PETR4", "inferior", 22.00f), Times.Never()); Assert.IsFalse(result, "result deve ser false"); }