Example #1
0
        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
        }
Example #2
0
        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);
        }
Example #3
0
        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");
        }