public InvestmentHandlerTest()
        {
            _sut = new InvestmentHandler(_mockTesouroDireto.Object, _mockLicis.Object, _mockFundos.Object, _mockCalculation.Object);

            _lciResponse = new LciResponse
            {
                Lcis = new List <Lcis>
                {
                    new Lcis
                    {
                        DataOperacao     = Convert.ToDateTime("2015-03-01T00:00:00"),
                        CapitalInvestido = 10000m,
                        CapitalAtual     = 12000m,
                        Nome             = "Selic",
                        Vencimento       = Convert.ToDateTime("2022-03-01T00:00:00"),
                    }
                }
            };

            _tesouroDireto = new TesouroDiretoResponse
            {
                TesourosDireto = new List <TesouroDireto>
                {
                    new TesouroDireto
                    {
                        DataDeCompra   = Convert.ToDateTime("2015-03-01T00:00:00"),
                        ValorInvestido = 10000m,
                        ValorTotal     = 12000m,
                        Nome           = "Selic",
                        Vencimento     = Convert.ToDateTime("2022-03-01T00:00:00"),
                    }
                }
            };


            _fundosResponse = new FundosResponse
            {
                Fundos = new List <Fundos>
                {
                    new Fundos
                    {
                        DataCompra       = Convert.ToDateTime("2015-03-01T00:00:00"),
                        CapitalInvestido = 10000m,
                        ValorAtual       = 12000m,
                        Nome             = "Selic",
                        DataResgate      = Convert.ToDateTime("2022-03-01T00:00:00"),
                    }
                }
            };
        }
Пример #2
0
        private async Task <InvestimentosResponse> Investimentos()
        {
            DateTime dataConsulta         = DateTime.Now;
            TesouroDiretoResponse tesouro = await _tesouroDiretoService.Get();

            RendaFixaResponse rendaFixa = await _rendaFixaService.Get();

            FundosResponse fundos = await _fundosService.Get();

            InvestimentosResponse investimentos = new InvestimentosResponse();

            PopulaTsouro(dataConsulta, tesouro, investimentos);
            PopulaRendaFixa(dataConsulta, rendaFixa, investimentos);
            PopulaFundos(dataConsulta, fundos, investimentos);

            return(investimentos);
        }
Пример #3
0
 private static void PopulaFundos(DateTime dataConsulta, FundosResponse fundos, InvestimentosResponse response)
 {
     foreach (var investimento in fundos.Fundos)
     {
         decimal taxa         = VerificaTaxaPeriodo(dataConsulta, investimento.DataCompra, investimento.DataResgate);
         decimal valorResgate = CalcularValorMenosTaxa((investimento.ValorAtual), taxa);
         response.ValorTotal += investimento.ValorAtual;
         response.Investimentos.Add(new Investimento()
         {
             Nome           = investimento.Nome,
             ValorInvestido = investimento.CapitalInvestido,
             ValorTotal     = investimento.ValorAtual,
             Vencimento     = investimento.DataResgate,
             Ir             = CalcularIr(investimento.CapitalInvestido, investimento.ValorAtual, taxaInvestimentoFundos),
             ValorResgate   = valorResgate
         });
     }
 }