示例#1
0
        public async void CalculeContratosChamandoInicioDeFormaIndevida()
        {
            var quantidadeCalls       = 500;
            var mockCalculoRepository = Substitute.For <ICalculoRepository>();

            mockCalculoRepository
            .InsiraValoresCalculados(Arg.Any <ComponentesCalculados>())
            .Returns(Task.CompletedTask);

            var mockContratoRepository = Substitute.For <IContratoRepository>();

            mockContratoRepository
            .ObterContratosVigentes(Arg.Any <DateTime>())
            .Returns(CenarioContrato.CrieCenarioValido(quantidadeCalls));

            var mockRabbtimq = Substitute.For <IRabbitMQBus>();

            var mockUser = Substitute.For <IUser>();

            var builder = new CalculoBuilder(DateTime.Now,
                                             EnumFolhaDePagamento.Mensal,
                                             mockCalculoRepository,
                                             Substitute.For <IFeedbackExecucaoCalculoServiceDomain>());

            var ex = await Assert.ThrowsAsync <ArgumentException>(() => builder.CalculeContratos());
        }
示例#2
0
        public void CalculeContratos()
        {
            var quantidadeCalls       = 500;
            var mockCalculoRepository = Substitute.For <ICalculoRepository>();

            mockCalculoRepository
            .InsiraValoresCalculados(Arg.Any <ComponentesCalculados>())
            .Returns(Task.CompletedTask);

            var mockContratoRepository = Substitute.For <IContratoRepository>();

            mockContratoRepository
            .ObterContratosVigentes(Arg.Any <DateTime>())
            .Returns(CenarioContrato.CrieCenarioValido(quantidadeCalls));

            var builder = new CalculoBuilder(DateTime.Now,
                                             EnumFolhaDePagamento.Mensal,
                                             mockCalculoRepository,
                                             Substitute.For <IFeedbackExecucaoCalculoServiceDomain>());

            var task = builder.InicieCalculo(mockContratoRepository)
                       .CalculeContratos();

            while (task.Status != TaskStatus.RanToCompletion)
            {
            }
            Assert.True(builder.IdExecucao != Guid.Empty);
            mockCalculoRepository.Received(quantidadeCalls).InsiraValoresCalculados(Arg.Any <ComponentesCalculados>());
        }
        public IActionResult Post(CalculoViewModel calculoViewModel)
        {
            var calculo = new CalculoBuilder(calculoViewModel.Referencia,
                                             EnumFolhaDePagamento.Mensal,
                                             _calculoRepository,
                                             _feedbackExecucaoCalculoServiceDomain);

            calculo.InicieCalculo(_contratoRepository);
            _ = calculo.CalculeContratos();

            return(Ok(calculo.IdExecucao));
        }
示例#4
0
 public void Setup()
 {
     calculo = new CalculoBuilder(DateTime.Now, EnumFolhaDePagamento.Mensal, repository, feedback);
     var quantidade = 1_000_000;
     Execucoes = new List<Contrato>(quantidade);
     var id = Guid.NewGuid();
     var vigencia = new Vigencia(DateTime.Now, DateTime.Now.AddMonths(12));
     var valor = new ValorComponenteCalculo(1000);
     while (quantidade > 0)
     {
         Execucoes.Add(new Contrato(id, Guid.NewGuid(), vigencia, valor));
         quantidade--;
     }
     calculo.InicieCalculo(Execucoes);
 }