private static async Task Main() { string conteudoLog = File.ReadAllText("logmovimentacao.txt"); LogMovimentacaoLeitor logMovimentacaoLeitor = new LogMovimentacaoLeitor(conteudoLog); ApiMovimentacaoLeitor apiMovimentacaoLeitor = new ApiMovimentacaoLeitor(new DadosDaApi { UrlBase = "https://my-json-server.typicode.com/cairano/backend-test", EndpointPagamentos = "pagamentos", EndpointRecebimentos = "recebimentos" }); RelatorioMovimentacaoServico relatorioMovimentacaoServico = new RelatorioMovimentacaoServico(new ILeitorDeMovimentacao[] { logMovimentacaoLeitor, apiMovimentacaoLeitor }); RelatorioMovimentacao relatorioMovimentacao = await relatorioMovimentacaoServico.RetornarRelatorioAsync().ConfigureAwait(false); ExibirGastosPorCategoria(relatorioMovimentacao); ExibirCategoriaComMaisGastos(relatorioMovimentacao); ExibirMesComMaisGastos(relatorioMovimentacao); ExibirValoresDeMovimentacaoDoCliente(relatorioMovimentacao); ExibirLogDeMovimentacoes(relatorioMovimentacao); System.Console.ReadKey(); }
public async Task Deve_RetornarAsMovimentacoesCorretmente() { const string dadosJsonPagamentos = @"[ { ""data"": ""11 / jul"", ""descricao"": ""Auto Posto Shell"", ""moeda"": ""R$"", ""valor"": ""-50,00"", ""categoria"": ""transporte"" }, { ""data"": ""24/jun"", ""descricao"": ""Ofner"", ""moeda:"": ""R$"", ""valor"": ""-23,80"", ""categoria"": ""transporte"" }]"; const string dadosJsonRecebimentos = @"[ { ""data"": ""10 / jul"", ""descricao"": ""Marcelo B."", ""moeda"": ""R$"", ""valor"": ""50,00"" }, { ""data"": ""04 / jul"", ""descricao"": ""Antonio C."", ""moeda"": ""R$"", ""valor"": ""15,00"" }]"; DadosDaApi dadosDaApi = new DadosDaApi { EndpointPagamentos = "EndpointPagamentos", EndpointRecebimentos = "EndpointRecebimentos", UrlBase = "UrlBase" }; Mock <IApiRequisitor> mockApiRequisitor = new Mock <IApiRequisitor>(); mockApiRequisitor.Setup(x => x.FazerRequisicaoAsync(dadosDaApi.UrlBase, dadosDaApi.EndpointPagamentos)) .ReturnsAsync(dadosJsonPagamentos); mockApiRequisitor.Setup(x => x.FazerRequisicaoAsync(dadosDaApi.UrlBase, dadosDaApi.EndpointRecebimentos)) .ReturnsAsync(dadosJsonRecebimentos); ApiMovimentacaoLeitor jsonMovimentacaoLeitor = new ApiMovimentacaoLeitor(dadosDaApi, mockApiRequisitor.Object); IReadOnlyList <Movimentacao> movimentacoes = await jsonMovimentacaoLeitor.RetornarMovimentacoesAsync().ConfigureAwait(false); Assert.Equal(4, movimentacoes.Count); AssertMovimentacao(movimentacoes[0], 11, 7, "Auto Posto Shell", -50m, "Transporte"); AssertMovimentacao(movimentacoes[1], 24, 6, "Ofner", -23.80m, "Transporte"); AssertMovimentacao(movimentacoes[2], 10, 7, "Marcelo B.", 50, "Outros"); AssertMovimentacao(movimentacoes[3], 04, 7, "Antonio C.", 15, "Outros"); }