コード例 #1
0
        public void FixtureSetUp()
        {
            _portabilidade = PortabilidadeApropriadaBuilder.UmBuilder().Padrao().Build();
            var premioAnterior = PremioBuilder.Um().Padrao().ComTipoMovimento((short)TipoMovimentoEnum.Inexistente).Build();

            var retornoCobertura = CoberturaContratadaBuilder.Uma().Padrao().ComRegimeFinanceiro((short)TipoRegimeFinanceiroEnum.FundoAcumulacao);
            var movimento        = MovimentoProvisaoBuilder.UmBuilder().Padrao();

            _retornoMovimento = new List <MovimentoProvisao>()
            {
                movimento.Build()
            };

            var retornoPremio = PremioBuilder.Um().Padrao()
                                .Com(movimento)
                                .Com(retornoCobertura)
                                .Build();

            MockingKernel.GetMock <IPremioService>()
            .Setup(x => x.CriarPremio(It.IsAny <Premio>(), It.IsAny <EventoPremio>())).Returns(Task.FromResult(retornoPremio));

            MockingKernel.GetMock <ICoberturas>()
            .Setup(x => x.ObterPorItemCertificado(It.IsAny <long>())).Returns(Task.FromResult(retornoCobertura.Build()));

            MockingKernel.GetMock <ICalculadorProvisaoPremio>()
            .Setup(x => x.CriarProvisao(It.IsAny <Premio>())).Returns(_retornoMovimento.AsEnumerable());

            MockingKernel.GetMock <IPremios>()
            .Setup(x => x.ObterPremioAnterior(It.IsAny <long>(), It.IsAny <int>())).Returns(Task.FromResult(premioAnterior));

            _evento = MockingKernel.Get <EventoPremioFactory>().Fabricar(_portabilidade).Result;
        }
コード例 #2
0
        public void FixtureSetUp()
        {
            _parcelaAjustada = ParcelaAjustadaBuilder.UmBuilder().Padrao().Build();

            var premioAnterior = PremioBuilder.Um().Padrao().ComTipoMovimento((short)TipoMovimentoEnum.Emissao).Build();

            var retornoCobertura = CoberturaContratadaBuilder.Uma().Padrao();
            var movimento        = MovimentoProvisaoBuilder.UmBuilder().Padrao();

            _retornoMovimento = new List <MovimentoProvisao>()
            {
                movimento.Build()
            };

            var retornoPremio = PremioBuilder.Um().Padrao()
                                .Com(movimento)
                                .Com(retornoCobertura)
                                .Build();

            MockingKernel.GetMock <IPremioService>()
            .Setup(x => x.CriarPremio(It.IsAny <Premio>(), It.IsAny <EventoPremio>())).Returns(Task.FromResult(retornoPremio));

            MockingKernel.GetMock <ICoberturas>()
            .Setup(x => x.ObterPorItemCertificado(It.IsAny <long>())).Returns(Task.FromResult(retornoCobertura.Build()));

            MockingKernel.GetMock <ICalculadorProvisaoPremio>()
            .Setup(x => x.CriarProvisao(It.IsAny <Premio>())).Returns(_retornoMovimento.AsEnumerable());

            MockingKernel.GetMock <IPremios>()
            .Setup(x => x.ObterPremioAnterior(It.IsAny <long>(), It.IsAny <int>())).Returns(Task.FromResult(premioAnterior));

            _evento = MockingKernel.Get <FabricarEventoPremio>().Com(_parcelaAjustada).Result;
        }
コード例 #3
0
 private void CriaEventoEmissaoPremio(TipoRegimeFinanceiroEnum regimeFinanceiro, params TipoProvisaoEnum[] tiposProvisao)
 {
     _evento = EventoEmissaoPremioBuilder.UmEvento()
               .Padrao()
               .Com(PremioBuilder.Um()
                    .Com(CoberturaContratadaBuilder.Uma()
                         .ComRegimeFinanceiro((short)regimeFinanceiro)
                         .ComTiposProvisao(tiposProvisao)))
               .Build();
 }
コード例 #4
0
        public void PremioAnteriorInvalido()
        {
            var premioAtual = PremioBuilder.Um().Padrao().ComTipoMovimento((short)TipoMovimentoEnum.Desapropriacao).Build();

            premioAtual.InformaEvento(EventoDesParcelaApropriadaBuilder.UmBuilder().Padrao().Build());

            var premioAnterior = PremioBuilder.Um().Padrao().ComTipoMovimento((short)TipoMovimentoEnum.Emissao).Build();

            Assert.That(() => premioAtual.ValidaPremioAnterior(premioAnterior), GeraErro($"Impossivel validar movimento de {TipoMovimentoEnum.Desapropriacao} precedido de {TipoMovimentoEnum.Emissao}"));
        }
コード例 #5
0
        public void DadoUmPremioDeveSeCalcularPPNGRetornandoUmaListaDeProvisao()
        {
            _premio = PremioBuilder.Um().Padrao().Build();

            _premio.InformaEvento(EventoEmissaoPremioBuilder.UmEvento().Padrao().Build());

            var listaProvisao = _calculadorPPNG.CalcularProvisao(_premio);

            var qtdCompetencias = CalcularMeses(_premio.FimVigencia, _premio.EventoOperacional.DataExecucaoEvento) + 1;

            Assert.That(listaProvisao.ToList().Count, Is.EqualTo(qtdCompetencias));
        }
        public void AoCalcularUmaProvisaoDeUmProdutoPGBLDeveRetornarUmaListaVazia()
        {
            _premio = PremioBuilder.Um().Padrao()
                      .Com(CoberturaContratadaBuilder.Uma().ComTipoItemProdutoId((int)TipoItemProdutoEnum.PGBL)
                           .Com(HistoricoCoberturaContratadaBuilder.UmHistorico()))
                      .Build();

            _premio.InformaEvento(EventoEmissaoPremioBuilder.UmEvento().Padrao().Build());

            _listaProvisao = _calculadorPmbac.CalculaProvisao(_premio, default(decimal));

            Assert.That(_listaProvisao.Count, Is.EqualTo(0));
        }
        public void AoCalcularUmaProvisaoDeUmProdutoVidaIndividualDeveRetornarUmaListaDeProvisoes()
        {
            _premio = PremioBuilder.Um().Padrao()
                      .Com(CoberturaContratadaBuilder.Uma().ComTipoItemProdutoId((int)TipoItemProdutoEnum.VidaIndividual)
                           .Com(HistoricoCoberturaContratadaBuilder.UmHistorico()))
                      .Build();

            _premio.InformaEvento(EventoEmissaoPremioBuilder.UmEvento().Padrao().Build());

            var result = _calculadorPmbac.CalculaProvisao(_premio, default(decimal)).First();

            Assert.That(result.Valor, Is.Not.EqualTo(default(decimal)));
        }
コード例 #8
0
 private EventoAportePremio ObterEventoAporte(TipoRegimeFinanceiroEnum regimeFinanceiro, int parcela)
 {
     return(EventoAportePremioBuilder.UmEvento().ComIdentificador(_identificador).Padrao()
            .Com(PremioBuilder.Um().Padrao().ComNumeroParcela(parcela)
                 .Com(CoberturaContratadaBuilder.Uma()
                      .ComRegimeFinanceiro((short)regimeFinanceiro)
                      .ComTiposProvisao(TipoProvisaoEnum.PMBAC, TipoProvisaoEnum.PEF)
                      .ComId(_coberturaCadastrada.Id)
                      .Com(HistoricoCoberturaContratadaBuilder.UmHistorico().ComDadosPadroes().ComId(_historicoId))
                      )
                 .Com(MovimentoProvisaoBuilder.UmBuilder().Padrao()
                      .Com(ProvisaoCoberturaBuilder.UmBuilder())
                      )
                 .Com(PagamentoPremioBuilder.Um().Padrao())
                 ).Build());
 }
        public void SetUpFixture()
        {
            _premio = PremioBuilder.Um().Padrao()
                      .Com(CoberturaContratadaBuilder.Uma().ComItemProdutoId((int)TipoItemProdutoEnum.VidaIndividual)
                           .Com(HistoricoCoberturaContratadaBuilder.UmHistorico().ComDadosPadroes()))
                      .Build();

            _premio.InformaEvento(EventoEmissaoPremioBuilder.UmEvento().Padrao().Build());

            _resultado = PmbacBuilder.UmBuilder().Padrao().Build();

            _facade = new Mock <ICalculoFacade>();
            _facade.Setup(x => x.CalcularPMBAC(It.IsAny <CoberturaContratada>(), It.IsAny <DateTime>(), It.IsAny <decimal>())).Returns(_resultado);

            _calculadorPmbac = new CalculadorProvisaoMatematicaBeneficioAConceder(_facade.Object);
        }
コード例 #10
0
        public void AoCalcularUmaProvisaoComMesDevigenciaIgualAoMesFimVigenciaDeveRetornarUmaProvisao()
        {
            _premio = PremioBuilder.Um().Padrao()
                      .Com(CoberturaContratadaBuilder.Uma().Com(HistoricoCoberturaContratadaBuilder.UmHistorico()))
                      .ComDataCompetencia(new DateTime(2017, 01, 01))
                      .ComFimVigencia(new DateTime(2017, 01, 31))
                      .Build();

            _premio.InformaEvento(EventoEmissaoPremioBuilder.UmEvento().Padrao().Build());

            var listaProvisao = _calculadorPPNG.CalcularProvisao(_premio);

            var qtdCompetencias = 1;

            Assert.That(qtdCompetencias, Is.EqualTo(listaProvisao.ToList().Count));
        }
コード例 #11
0
        public new void FixtureSetUp()
        {
            _eventos = GetInstance <IEventosBase <EventoEmissaoPremio> >();

            _eventoEmissao = EventoParcelaEmitidaBuilder
                             .UmEventoComDataExecucao(_identificador, IdentificadoresPadrao.Competencia)
                             .Padrao()
                             .Com(PremioBuilder.Um().Padrao()
                                  .Com(CoberturaContratadaBuilder.Uma()
                                       .ComRegimeFinanceiro((short)TipoRegimeFinanceiroEnum.Capitalizacao)
                                       .ComTiposProvisao(TipoProvisaoEnum.PMBAC, TipoProvisaoEnum.PEF)
                                       .ComId(_coberturaCadastrada.Id)
                                       .Com(HistoricoCoberturaContratadaBuilder.UmHistorico().ComId(_historicoId).ComDadosPadroes()))
                                  .Com(MovimentoProvisaoBuilder.UmBuilder().Padrao()
                                       .Com(ProvisaoCoberturaBuilder.UmBuilder())))
                             .Build();

            _eventos.Salvar(_eventoEmissao).Wait();
        }
コード例 #12
0
        public void DadoUmaEmissaoPremioDeveAdicionarListaProvisoes()
        {
            _emissaoPremio = ParcelaEmitidaBuilder.UmBuilder()
                             .ComIdentificador(IdentificadoresPadrao.Identificador)
                             .ComIdentificadorNegocio(IdentificadoresPadrao.IdentificadorNegocio)
                             .ComDataExecucaoEvento(IdentificadoresPadrao.DataExecucaoEvento)
                             .Com(ParcelaBuilder.UmBuilder().Padrao())
                             .Build();

            MovimentoProvisaoBuilder[] provisoes = { MovimentoProvisaoBuilder.UmBuilder().Padrao(), MovimentoProvisaoBuilder.UmBuilder().Padrao() };

            _evento = EventoParcelaEmitidaBuilder.UmEvento()
                      .Com(PremioBuilder.Um().Padrao()
                           .Com(provisoes)).Build();

            _emissaoPremio.Parcelas.ForEach(p => p.MovimentoToProvisao(_evento));

            var parcela = _emissaoPremio.Parcelas.First();

            Assert.That(provisoes.Count(), Is.EqualTo(_evento.Premios.First().MovimentosProvisao.Count()));
            Assert.That(provisoes.Count(), Is.EqualTo(parcela.Provisoes.Count()));
        }