Example #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());
        }
Example #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>());
        }
Example #3
0
        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));
        }
Example #4
0
        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);
        }
Example #6
0
        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--;
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }