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);
        }
        public void DadoUmPremioCapitalizadoDeveCalcularPMBAC()
        {
            CriaEventoEmissaoPremio(TipoRegimeFinanceiroEnum.Capitalizacao, TipoProvisaoEnum.PMBAC);

            _premio = _evento.Premios.First();
            _premio.InformaEvento(_evento);
            _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);

            _provisao.Setup(x => x.ObterUltimoMovimentoProvisao(It.IsAny <Premio>(), TipoProvisaoEnum.PMBAC)).Returns(Task.FromResult(_movimentoProvisao));

            _calculadorPMBAC.Setup(x => x.CalculaProvisao(It.IsAny <Premio>(), It.IsAny <decimal>())).Returns(new List <ProvisaoDto>()
            {
                _resultado
            });

            _calculadorProvisao = new CalculadorProvisaoPremio(_calculadorPPNG.Object, _calculadorPMBAC.Object, _provisao.Object);

            _calculadorProvisao.CriarProvisao(_premio);

            _calculadorPMBAC.Verify(m => m.CalculaProvisao(It.IsAny <Premio>(), It.IsAny <decimal>()));
        }