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 void Calcula_folha_mensal() { var contrato = CenarioContrato.CrieCenarioConsistente(1000); var calculo = new CalculoFolhaMensal(DateTime.Now); var result = calculo.Calcule(contrato); Assert.True(result.ExisteValores); new ValorComponenteCalculo(925).Should().Be(result.Valor(EnumComponentesCalculo.SalarioLiquido)); }
public void ObterValorTest(double valor) { var inss = new INSSComponenteDeCalculo(); var tabela = new ComponentesCalculados(CenarioContrato.CrieCenarioConsistente(valor), DateTime.Now); tabela.AdicioneValor(inss, (ValorComponenteCalculo)valor); tabela.AdicioneValor(new FGTSComponenteCalculo(), (ValorComponenteCalculo)valor); Assert.Equal((ValorComponenteCalculo)valor, tabela.Valor(EnumComponentesCalculo.FGTS)); }
public void Calcule(double salario, double result) { var contrato = CenarioContrato.CrieCenarioConsistente(salario); var tabela = new ComponentesCalculados(contrato, DateTime.Now); tabela.AdicioneValor(new BaseSalarioComponenteCalculo(), (ValorComponenteCalculo)salario); var componente = new FGTSComponenteCalculo(); var valorCalculado = componente.Calcule(contrato, tabela); Assert.Equal((ValorComponenteCalculo)result, valorCalculado); }
private void CalculeBenchmark() { var contrato = CenarioContrato.CrieCenarioConsistente(1000); var calculo = new CalculoFolhaFerias(DateTime.Now); var execucoes = 5_00_000; while (execucoes > 0) { calculo.Calcule(contrato); execucoes--; } }
public void AdicioneValor(double valor, bool result) { var contrato = CenarioContrato.CrieCenarioConsistente(valor); var inss = new INSSComponenteDeCalculo(); var tabela = new ComponentesCalculados(contrato, new DateTime(2020, 1, 1)); tabela.AdicioneValor(inss, (ValorComponenteCalculo)valor); Assert.True(tabela.ExisteValores == result); Assert.Equal(new DateTime(2020, 1, 1), tabela.Referencia); Assert.Equal(contrato.IdColaborador, tabela.IdColaborador); Assert.Equal(contrato.IdContrato, tabela.IdContrato); Assert.True(tabela.Valores.Count > 0 == result); }
public void Calcule(double salarioContratual, double inss, double irrf, double result) { var tabela = new ComponentesCalculados(null, DateTime.Now); tabela.AdicioneValor(new BaseSalarioComponenteCalculo(), (ValorComponenteCalculo)salarioContratual); tabela.AdicioneValor(new INSSComponenteDeCalculo(), (ValorComponenteCalculo)inss); tabela.AdicioneValor(new IRRFComponenteDeCalculo(), (ValorComponenteCalculo)irrf); var contrato = CenarioContrato.CrieCenarioConsistente(salarioContratual); var compomente = new SalarioLiquidoComponenteDeCalculo(); var valorCalculado = compomente.Calcule(contrato, tabela); Assert.Equal(result, valorCalculado.Valor); }