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 static IEnumerable <PremioPortabilidade> ToEventoPortabilidade(this IPortabilidadeApropriada contrato)
        {
            var evento = new EventoPortabilidadePremio(contrato.Identificador, contrato.IdentificadorCorrelacao, contrato.IdentificadorNegocio, contrato.DataExecucaoEvento);

            contrato.Portabilidades.SafeForEach(premio => evento.AdicionarPremio(premio.ToPremioPortabilidade()));

            return(evento.Premios);
        }
예제 #3
0
        public static void ValidarPortabilidade(this IPortabilidadeApropriada evento)
        {
            evento.Validar();

            Assertion.NotNull(evento.Portabilidades, "Nenhum prêmio informado.").Validate();

            evento.Portabilidades.Select(p => p.ValidarPremioPortabilidade()).Aggregate(Assertion.Neutral(), (x, y) => x.and(y)).Validate();
        }
        public static void Validar(this IPortabilidadeApropriada premio)
        {
            premio.ValidarEvento();

            foreach (var portabilidade in premio.Portabilidades)
            {
                portabilidade.Validar();
                portabilidade.Pagamento.Validar(portabilidade.ParcelaId.IdentificadorExternoCobertura);
            }
        }
예제 #5
0
        public async Task <EventoPremio> Com(IPortabilidadeApropriada message)
        {
            var evento = new EventoPortabilidadePremio(message.Identificador, message.IdentificadorCorrelacao, message.IdentificadorNegocio, message.DataExecucaoEvento);

            foreach (var parcela in message.Portabilidades)
            {
                var premio = (await _premios.CriarPremio(_mapear.ToPremio(parcela), evento))
                             .ComPagamento(_mapear.ToPagamentoPremio(parcela.Pagamento))
                             .ComNumero(evento.ParcelaPortabilidade)
                             .ComCodigoSusep(parcela.CodigoSusep);

                evento.AdicionarPremio(premio);
            }
            return(evento);
        }
        public void DadoUmaPortabilidadePremioDeveMapearOPremio()
        {
            _portabilidadePremio = PortabilidadeApropriadaBuilder.UmBuilder().Padrao().Build();

            var premio = GetInstance <EventoPremioFactory>().Fabricar(_portabilidadePremio).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));
        }
예제 #7
0
        public new async Task FixtureSetUp()
        {
            _portabilidadeApropriado = ObterPortabilidadeApropriada();

            _portabilidade = _portabilidadeApropriado.Portabilidades.First();

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

            GetInstance <PortabilidadePremioService>().Execute(_portabilidadeApropriado).Wait();

            _premioPortabilidadeDto = await _premios.ObterPorItemCertificado <Premio>(long.Parse(_portabilidade.ParcelaId.IdentificadorExternoCobertura), (short)TipoMovimentoEnum.Portabilidade, 0);

            _pagamentoPremioDto = await _premios.ObterPorItemCertificado <PagamentoPremio>(long.Parse(_portabilidade.ParcelaId.IdentificadorExternoCobertura), (short)TipoMovimentoEnum.Portabilidade, 0);
        }
 public PortabilidadePremioContext(IPortabilidadeApropriada request) : base(request)
 {
 }
        public void DadoUmaPortabilidadeSemPremioDeveGerarErro()
        {
            _portabilidadePremio = PortabilidadeApropriadaBuilder.UmBuilder().ComIdentificador(IdentificadoresPadrao.Identificador).ComDataExecucaoEvento(DateTime.Now).Build();

            Assert.That(() => _portabilidadePremio.Validar(), GeraErro("Nenhum prêmio informado."));
        }
        public void DadoUmaPortabilidadeComDataExcucaoInvalidaDeveGerarErro()
        {
            _portabilidadePremio = PortabilidadeApropriadaBuilder.UmBuilder().Build();

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

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