public void Deve_Entregar_Contratos_Vigentes_Nas_Competencias() { throw new NotImplementedException(); //Arrange string jsonCompetencias = jsonCompetenciaMensalJaneiro; IServicoFaturamento servicoConfiguracoesMock = LOMock.ConfigurarServicoFaturamentoMock(jsonCompetencias); IServicoRetaguarda servicoRetaguardaMock = LOMock.ConfiguraRetaguardaMock(servicoConfiguracoesMock); IEnumerable <IContratoDeRemuneracao> contratos = ConfiguraContratosMock(); Mock <IRepositorioDeContratoDeRemuneracao> repositorioContratosMock = ConfigurarRepositorioContratos(contratos); IEnumerable <IRegraDeRemuneracao> regras = ConfiguraRegrasMock(); Mock <IRepositorioDeRegras> repositorioRegrasMock = ConfigurarRepositorioRegras(regras); Mock <LawofficeContext> mockContext = new Mock <LawofficeContext>(); // TODO mudar para lógica de descobridor //var gerenciador = new GerenciadorDeRequisicoesDeContrato(repositorioContratosMock.Object, repositorioRegrasMock.Object, servicoRetaguardaMock.Object); ////gerenciador.ConfiguraServicosAsync(mockContext.Object).Wait(); ////Act //var taskLista = gerenciador.RequisicaoListaContratosVigentesEmAsync(new[] { "201801" }); //taskLista.Wait(); //IEnumerable<IContratoDeRemuneracao> results = taskLista.Result; ////Arrange //Assert.True(contratos.SequenceEqual(results)); }
public static IEnumerable <object[]> CenariosComDescontoMaiorQueValorBruto() { List <object[]> casos = new List <object[]>(); Dinheiro zero = Dinheiro.Zero; try { IFechamentoDeRemuneracao fechamentoAlvo = LOMock.ConfiguraFechamento(LOMock.ID_FECHAMENTO_MOCK, LOMock.ID_FAVORECIDO, Dinheiro.EmReais(200), Dinheiro.EmReais(200)); var caso1 = new object[] { fechamentoAlvo, zero, zero }; var caso2 = new object[] { fechamentoAlvo, Dinheiro.EmReais(100), zero }; var caso3 = new object[] { fechamentoAlvo, Dinheiro.EmReais(300), zero }; casos.Add(caso1); casos.Add(caso2); casos.Add(caso3); } catch (Exception ex) { throw ex; } //Nao permitir casos zerados return(casos.Where(caso => (!caso[1].Equals(zero) || !caso[2].Equals(zero)) && ((IFechamentoDeRemuneracao)caso[0]).ValorBruto < (Dinheiro)caso[1])); }
public void Deve_Remunerar_Linearmente_Proporcional_Ao_Percentual_Configurado_Para_a_Regra() { //Arrange Random rnd = new Random(); decimal multiplicador = rnd.Next(0, 100) / 100.0M; var valorHora = new Dinheiro(valor: 100M, moeda: Moeda.Real); Mock <ITabelaDePreco <int> > tabelaMock = GeraTabelaMock(valorHora); Profissional favorecido = LOMock.GeraProfissionalMock(id: 1, categoria: new Categoria(), nome: "LeMock"); IFavorecimento favorecimento = LOMock.GeraFavorecimentoMock(new[] { favorecido }); ParametrosDeRegraDeRemuneracao parametrosRegra1 = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(percentual: 100); ParametrosDeRegraDeRemuneracao parametrosRegra2 = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(percentual: 100 * multiplicador); IRegraDeRemuneracao regra1 = LOMock.ConstroiRegraPorHora(parametrosRegra1, favorecimento, tabelaMock.Object); IRegraDeRemuneracao regra2 = LOMock.ConstroiRegraPorHora(parametrosRegra2, favorecimento, tabelaMock.Object); Mock <IHoraPreProcessada> entregaMock = ConfiguraMockEntregaRemuneravel(5, favorecido); //Act IEnumerable <IRemuneracao> remuneracoesA = regra1.CalculaRemuneracoes(new IEntregaPreProcessada[] { entregaMock.Object }); IEnumerable <IRemuneracao> remuneracoesB = regra2.CalculaRemuneracoes(new IEntregaPreProcessada[] { entregaMock.Object }); IEnumerator <IRemuneracao> enumeratorA = remuneracoesA.GetEnumerator(); IRemuneracao RemuneracaoA = remuneracoesA.First(); IEnumerator <IRemuneracao> enumeratorB = remuneracoesB.GetEnumerator(); IRemuneracao RemuneracaoB = remuneracoesB.First(); //Assert Assert.AreEqual(multiplicador * RemuneracaoA.ValorAjustado.Valor, RemuneracaoB.ValorAjustado.Valor); }
public void Setup() { _context = LOMock.ConfigurarMockContext(); _retaguardaEndpoint = LOMock.ObtemEndpointRetaguarda(); _configs = LOMock.ConfiguraConfiguracoes(); _idDominio = LOMock.ConfiguraIdDominio(); }
public async Task Deve_Adicionar_Nova_Entrada_De_Regra_No_Banco_Desenv() { //Arrange IRepositorioDeRegras repo = TesteInfraService.ServiceProvider.GetService <IRepositorioDeRegras>(); Mock <IFavorecimento> favorecimentoMock = new Mock <IFavorecimento>(); favorecimentoMock.SetupAllProperties(); Profissional funcionario1 = new Profissional(1, null, "Fernando"); Profissional funcionario2 = new Profissional(2, null, "Bronze"); Profissional funcionario3 = new Profissional(3, null, "Cinco"); Profissional[] funcionarios = new Profissional[] { funcionario1, funcionario2, funcionario3 }; ParametrosDeRegraDeRemuneracao parametros = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(percentual: 50, vigencia: new PeriodoSimples(new DateTime(2018, 05, 01), new DateTime(2018, 08, 24))); RegraPorHora regraHora = null;//new RegraPorHora(parametros); int idInserido; //Act idInserido = await repo.InserirAsync(regraHora); throw new NotImplementedException(); //IRegraDeRemuneracao[] regraObtida = await repo.ObterAsync(new int[] { idInserido }); ////Assert //Assert.IsNotNull(regraObtida[0]); //Assert.AreEqual(regraHora.Tipo, regraObtida[0].Tipo); }
public void Entrega_De_Favorecido_Deve_Ser_Considerada_Entrega_De_Beneficiario() { //Arrange Favorecido favorecido = _favorecidos.ElementAt(new Random().Next(_favorecidos.Count() - 1)); IEntregaPreProcessada entrega = LOMock.ConfiguraMockEntrega(favorecido.Profissional, DateTime.Now); foreach (var favorecimento in _favorecimentos) { //Assert Assert.DoesNotThrow(() => favorecimento.BeneficiarioDaEntregaEhFavorecido(entrega), "{0} lança uma exceção ao tentar checar se a entrega é de beneficiário", favorecimento.Tipo.Id); Assert.IsTrue(favorecimento.BeneficiarioDaEntregaEhFavorecido(entrega), "{0} não define corretamente se a entrega é de beneficiário", favorecimento.Tipo.Id); } }
private static List <Profissional> GeraProfissionaisComTodasAsCombinacoesDeIds(int[] idsEntidadesPrincipais, int[] idsEntidadesSecundarias, List <Categoria> categorias) { List <Profissional> profissionais = idsEntidadesPrincipais.Select(id => LOMock.ConfiguraMockFuncionario(id, "Berto", categorias.First(cat => cat.IdCategoria == id))).ToList(); profissionais.AddRange(idsEntidadesSecundarias.Select(id => LOMock.ConfiguraMockFuncionario(id, "Berto", categorias.First(cat => cat.IdCategoria == id))).ToList()); var ids = from id in idsEntidadesPrincipais join id2 in idsEntidadesSecundarias on 1 equals 1 select new Tuple <int, int>(id, id2); profissionais.AddRange(ids.Select(id => LOMock.ConfiguraMockFuncionario(id.Item1, "Berto", categorias.First(cat => cat.IdCategoria == id.Item2))).ToList()); profissionais.AddRange(ids.Select(id => LOMock.ConfiguraMockFuncionario(id.Item2, "Berto", categorias.First(cat => cat.IdCategoria == id.Item1))).ToList()); return(profissionais); }
internal static IEnumerable <IFavorecimento> ObtemFavorecimentosConfigurados() { List <Categoria> categorias = GeraCategoriasComTodasAsCombinacoesDeIds(idsEntidadesPrincipais, idsEntidadesSecundarias); List <Profissional> profissionais = GeraProfissionaisComTodasAsCombinacoesDeIds(idsEntidadesPrincipais, idsEntidadesSecundarias, categorias); List <IFavorecimento> favorecimentos = new List <IFavorecimento>(); _servicoFuncionario = LOMock.ConfiguraServicoProfissionais(profissionais); ParametrosDeFavorecimento parametros = GeraParametrosDeFavorecimento(idsEntidadesPrincipais, idsEntidadesSecundarias); favorecimentos.Add(CriarFavorecimentoPorLista(parametros)); favorecimentos.Add(CriarFavorecimentoPorCategoria(parametros)); return(favorecimentos); }
public async Task Deve_Vincular_Regras_A_Contrato() { //Arrange IRepositorioDeContratoDeRemuneracao repoContrato = TesteInfraService.ServiceProvider.GetService <IRepositorioDeContratoDeRemuneracao>(); IRepositorioDeRegras repoRegra = TesteInfraService.ServiceProvider.GetService <IRepositorioDeRegras>(); Mock <IFavorecimento> favorecimentoMock = new Mock <IFavorecimento>(); favorecimentoMock.SetupAllProperties(); Profissional funcionario1 = new Profissional(1, null, "Fernando"); Profissional funcionario2 = new Profissional(2, null, "Bronze"); Profissional funcionario3 = new Profissional(3, null, "Cinco"); Profissional[] funcionarios = new Profissional[] { funcionario1, funcionario2, funcionario3 }; ParametrosDeRegraDeRemuneracao parametros = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(percentual: 50, vigencia: new PeriodoSimples(new DateTime(2018, 05, 01), new DateTime(2018, 08, 24))); RegraPorHora regraHora1 = null;//new RegraPorHora(parametros); parametros = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(percentual: 60, vigencia: new PeriodoSimples(new DateTime(2018, 06, 01), new DateTime(2018, 08, 24))); RegraPorHora regraHora2 = null;//new RegraPorHora(parametros); parametros = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(percentual: 70, vigencia: new PeriodoSimples(new DateTime(2018, 07, 01), new DateTime(2018, 08, 24))); RegraPorHora regraHora3 = null;// new RegraPorHora(parametros); ContratoDeRemuneracao contratoCriado = new ContratoDeRemuneracao(new PeriodoSimples(new DateTime(2018, 03, 01), new DateTime(2018, 04, 01))); //Act List <int> idsRegra = new List <int> { { await repoRegra.InserirAsync(regraHora1) }, { await repoRegra.InserirAsync(regraHora2) }, { await repoRegra.InserirAsync(regraHora3) } }; int idContrato = await repoContrato.InserirAsync(contratoCriado); await repoContrato.AtualizaVinculosAsync(idContrato, idsRegra.ToArray()); IContratoDeRemuneracao[] contratoObtido = await repoContrato.ObterAsync(new int[] { idContrato }); IRegraDeRemuneracao[] regrasObtidas = (await repoRegra.ObterAsync(idsRegra.ToArray())).Select(p => p.Tipo.Construtor(null, null).ComParametros(p).ComFavorecimento(favorecimentoMock.Object).Construir()).ToArray(); IEnumerable <IRegraDeRemuneracao> regrasVinculadas = contratoObtido[0].Regras; //Assert Assert.AreEqual(idContrato, contratoObtido[0].Id); Assert.IsNotNull(regrasVinculadas); Assert.IsTrue(regrasVinculadas.Count() > 0); }
public void Deve_Remunerar_Favorecido_Conforme_Tabela() { //Arrange Profissional favorecido = LOMock.GeraProfissionalMock(id: 1, categoria: new Categoria(), nome: "LeMock"); IFavorecimento favorecimento = LOMock.GeraFavorecimentoMock(new[] { favorecido }); var valorHora = new Dinheiro(valor: 100M, moeda: Moeda.Real); Mock <ITabelaDePreco <int> > tabelaMock = GeraTabelaMock(valorHora); ParametrosDeRegraDeRemuneracao parametrosRegra = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(percentual: 100M); IRegraDeRemuneracao regra = LOMock.ConstroiRegraPorHora(parametrosRegra, favorecimento, tabelaMock.Object); Mock <IHoraPreProcessada> entrega = ConfiguraMockEntregaRemuneravel(5, favorecido); //Act IEnumerable <IRemuneracao> remuneracoes = regra.CalculaRemuneracoes((new IEntregaPreProcessada[] { entrega.Object })); IRemuneracao Remuneracao = remuneracoes.First(); //Assert Assert.AreEqual(favorecido.Id, Remuneracao.IdFavorecido); Assert.AreEqual(5 * valorHora.Valor, Remuneracao.ValorAjustado.Valor); }
public void Nao_Remunerar_Entregas_De_Funcionarios_Que_Nao_Sao_Favorecidos() { //Arrange Profissional favorecido = LOMock.GeraProfissionalMock(id: 1, categoria: new Categoria(), nome: "LeMock"); IFavorecimento favorecimento = LOMock.GeraFavorecimentoMock(new[] { favorecido }); Profissional naoFavorecido = LOMock.GeraProfissionalMock(id: 2, categoria: new Categoria(), nome: "LeNaoMock"); var valorHora = new Dinheiro(valor: 100M, moeda: Moeda.Real); Mock <ITabelaDePreco <int> > tabelaMock = GeraTabelaMock(valorHora); var parametrosRegra = LOMock.GeraParametrosDeRegraDeRemuneracaoPorHoraMock(); Mock <IHoraPreProcessada> entregaDeFavorecido = ConfiguraMockEntregaRemuneravel(5, favorecido); Mock <IHoraPreProcessada> entregaDeNaoFavorecido = ConfiguraMockEntregaRemuneravel(5, naoFavorecido); IRegraDeRemuneracao regra = LOMock.ConstroiRegraPorHora(parametrosRegra, favorecimento, tabelaMock.Object); //Act IEnumerable <IRemuneracao> remuneracoes = regra.CalculaRemuneracoes(new IEntregaPreProcessada[] { entregaDeFavorecido.Object, entregaDeNaoFavorecido.Object }); //Assert Assert.That(remuneracoes.Select(rem => rem.IdFavorecido), Has.No.Member(naoFavorecido.Id)); }
private void Initialize(IFechamentoDeRemuneracao fechamento) { _repositorio = LOMock.ConfiguraRepositorioDeRemuneracoesParaFechamento(fechamento, NUMERO_DE_FECHAMENTOS_ADICIONAIS); _diretor = new DiretorDeRevisao(_repositorio, LOMock.ConfiguraLoggerSimples()); }
internal static IEnumerable <Favorecido> GeraFavorecidos() { List <Categoria> categorias = GeraCategoriasComTodasAsCombinacoesDeIds(idsEntidadesPrincipais, idsEntidadesSecundarias); List <Profissional> profissionais = GeraProfissionaisComTodasAsCombinacoesDeIds(idsEntidadesPrincipais, idsEntidadesSecundarias, categorias); Favorecido[] favorecidos = profissionais.Where(prof => idsEntidadesPrincipais.Contains(prof.Id) && idsEntidadesPrincipais.Contains(prof.Id)).Select(prof => LOMock.ConfiguraMockFavorecido(prof, new PeriodoSimples())).ToArray(); Favorecido[] favorecidosExcluidos = profissionais.Where(prof => idsEntidadesSecundarias.Contains(prof.Id) && idsEntidadesSecundarias.Contains(prof.Id)).Select(prof => LOMock.ConfiguraMockFavorecido(prof, new PeriodoSimples())).ToArray(); return(favorecidos); }
public void SetUp() { _context = LOMock.ConfigurarMockContext(); _endpoint = Constantes.LOCAL_URL_SERVICOS; }