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()); }
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)); }
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); }