public void FixtureSetUp()
        {
            _Aporte = AporteApropriadoBuilder.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(_Aporte).Result;
        }
        public void DadoUmAporteSemPremioDeveGerarErro()
        {
            _aporteApropriado = AporteApropriadoBuilder.UmBuilder()
                                .ComIdentificador(IdentificadoresPadrao.Identificador)
                                .ComDataExecucaoEvento(DateTime.Now).Build();

            Assert.That(() => _aporteApropriado.Validar(), GeraErro("Nenhum aporte informado."));
        }
        public static IEnumerable <PremioAporte> ToEventoAporte(this IAporteApropriado contrato)
        {
            var evento = new EventoAportePremio(contrato.Identificador, contrato.IdentificadorCorrelacao, contrato.IdentificadorNegocio, contrato.DataExecucaoEvento);

            contrato.Aportes.SafeForEach(premio => evento.AdicionarPremio(premio.ToPremioAporte()));

            return(evento.Premios);
        }
        public static void ValidarAporte(this IAporteApropriado evento)
        {
            evento.Validar();

            Assertion.NotNull(evento.Aportes, "Nenhum aporte informado.").Validate();

            evento.Aportes.Select(a => a.ValidarPremioAporte()).Aggregate(Assertion.Neutral(), (x, y) => x.and(y)).Validate();
        }
        public static void Validar(this IAporteApropriado premio)
        {
            premio.ValidarEvento();

            foreach (var aporte in premio.Aportes)
            {
                aporte.Validar();
                aporte.Pagamento.Validar(aporte.ParcelaId.IdentificadorExternoCobertura);
            }
        }
示例#6
0
        public async Task <EventoPremio> Com(IAporteApropriado message)
        {
            var evento = new EventoAportePremio(message.Identificador, message.IdentificadorCorrelacao, message.IdentificadorNegocio, message.DataExecucaoEvento);

            foreach (var parcela in message.Aportes)
            {
                var premio = (await _premios.CriarPremio(_mapear.ToPremio(parcela), evento))
                             .ComPagamento(_mapear.ToPagamentoPremio(parcela.Pagamento))
                             .ComNumero(evento.ParcelaAporte);

                evento.AdicionarPremio(premio);
            }
            return(evento);
        }
示例#7
0
        public new async Task FixtureSetUp()
        {
            _aporteApropriado = ObterAportePremio();

            _aporte = _aporteApropriado.Aportes.First();

            GetInstance <CoberturaContratadaHelper>().AtualizarCoberturaRegimeFinanceiro(
                long.Parse(_aporte.ParcelaId.IdentificadorExternoCobertura), TipoRegimeFinanceiroEnum.FundoAcumulacao).Wait();

            GetInstance <AportePremioService>().Execute(_aporteApropriado).Wait();

            _premioAporteDto = await _premios.ObterPorItemCertificado <Premio>(long.Parse(_aporte.ParcelaId.IdentificadorExternoCobertura), (short)TipoMovimentoEnum.Aporte, 0);

            _pagamentoPremioDto = await _premios.ObterPorItemCertificado <PagamentoPremio>(long.Parse(_aporte.ParcelaId.IdentificadorExternoCobertura), (short)TipoMovimentoEnum.Aporte, 0);
        }
        public void DadoUmaPortabilidadePremioDeveMapearOPremio()
        {
            _aporteApropriado = AporteApropriadoBuilder.UmBuilder().Padrao().Build();

            var premios = GetInstance <EventoPremioFactory>().Fabricar(_aporteApropriado);

            var premio = premios.Premios.First();

            Assert.That(premio.Pagamento.DataPagamento, Is.EqualTo(IdentificadoresPadrao.DataPagamento));
            Assert.That(premio.Pagamento.DataApropriacao, Is.EqualTo(IdentificadoresPadrao.DataApropriacao));
            Assert.That(premio.Pagamento.ValorPago, Is.EqualTo(IdentificadoresPadrao.ValorPago));
            Assert.That(premio.Pagamento.Desconto, Is.EqualTo(IdentificadoresPadrao.Desconto));
            Assert.That(premio.Pagamento.Multa, Is.EqualTo(IdentificadoresPadrao.Multa));
            Assert.That(premio.Pagamento.IOFARecolher, Is.EqualTo(IdentificadoresPadrao.IOFARecolher));
            Assert.That(premio.Pagamento.IOFRetido, Is.EqualTo(IdentificadoresPadrao.IOFRetido));
            Assert.That(premio.Pagamento.IdentificadorCredito, Is.EqualTo(IdentificadoresPadrao.IdentificadorCredito));
        }
 public AportePremioContext(IAporteApropriado request) : base(request)
 {
 }
        public void DadoUmAporteComDataExcucaoInvalidaDeveGerarErro()
        {
            _aporteApropriado = AporteApropriadoBuilder.UmBuilder().Build();

            Assert.That(() => _aporteApropriado.Validar(), GeraErro("A Data de Execução não pode ser nula."));
        }
        public void DadoUmAporteComIdentificadorInvalidaDeveGerarErro()
        {
            _aporteApropriado = AporteApropriadoBuilder.UmBuilder().Build();

            Assert.That(() => _aporteApropriado.Validar(), GeraErro("O Identificador não pode ser nulo."));
        }