public PreProcesadorDeEntregasARemunerarComposto(ConfiguracoesDeEntregas configs, IMapeadorDeEntregas mapeadorDeEntregas, IRepositorioDeRegras repositorioDeRegras, IGerenciadorDeRequisicoesFinanceiras gerenciadorFinanceiro)
 {
     _mapeadorDeEntregas      = mapeadorDeEntregas;
     _analisadoresEspecificos = new ConcurrentStack <Lazy <IPreProcessadorDeEntregas> >();
     _repositorioDeRegras     = repositorioDeRegras;
     _gerenciadorFinanceiro   = gerenciadorFinanceiro;
     Configurar(configs);
 }
Esempio n. 2
0
        public void Nao_Deve_Lancar_Excecao_Ao_Analisar_Periodo_Valido()
        {
            //Arrange
            ConfiguracoesDeEntregas configuracoesDeEntregas = MontaConfiguracao(RegimeRemuneracao.Competencia, TipoDeEntrega.Todos.ToArray());
            //ConfiguracoesDeEntregas configuracoesDeEntregas = MontaConfiguracao(RegimeRemuneracao.Competencia, TipoDeEntrega.Todos.ToArray());

            PreProcesadorDeEntregasARemunerarComposto analisador = new PreProcesadorDeEntregasARemunerarComposto(configuracoesDeEntregas, _mockRepositorioDeEntregas.Object, null, _mockGerenciador);

            //Act && Assert
            Assert.DoesNotThrow(() => analisador.PreProcessarEntregasARemunerarAsync(_competencias_todas).Wait());
        }
 private void Configurar(ConfiguracoesDeEntregas configs)
 {
     //criar processadores especificos
     Parallel.ForEach(configs.TiposDeEntrega, (tipo) =>
     {
         Task <IPreProcessadorDeEntregas> taskAnalisador = tipo.CriarProcessadorDeEntregasAsync(_mapeadorDeEntregas, configs.Regime, _repositorioDeRegras, _gerenciadorFinanceiro);
         _analisadoresEspecificos.Push(
             new Lazy <IPreProcessadorDeEntregas>(() =>
         {
             taskAnalisador.Wait();
             return(taskAnalisador.Result);
         })
             );
     });
 }
Esempio n. 4
0
        public void Define_Entregas_De_Hora_Remuneravel_Para_Cada_Entrega_De_Horas_Faturada_Quando_Configurado_Por_Faturamento()
        {
            //Arrange
            ConfiguracoesDeEntregas configuracoesDeEntregas = MontaConfiguracao(RegimeRemuneracao.Competencia, new TipoDeEntrega[] { TipoDeEntrega.Hora });

            PreProcesadorDeEntregasARemunerarComposto analisador = new PreProcesadorDeEntregasARemunerarComposto(configuracoesDeEntregas, _mockRepositorioDeEntregas.Object, null, _mockGerenciador);

            //Act
            Task <IEnumerable <IEntregaPreProcessada> > analisadorTask = analisador.PreProcessarEntregasARemunerarAsync(_competencias_todas);

            analisadorTask.Wait();
            IEnumerable <IEntregaPreProcessada> entregasRemuneraveis = analisadorTask.Result.ToArray();

            //Assert
            Assert.Greater(entregasRemuneraveis.Where(ent => ent is IHoraPreProcessada).Count(), 0);
            Assert.AreEqual(entregasRemuneraveis.Where((ent) => ent is IHoraPreProcessada).Count(), _entregas_todas.Where(entrega => entrega is IEntregaDeHoras).Count());
        }
Esempio n. 5
0
        private ConfiguracoesDeEntregas MontaConfiguracao(RegimeRemuneracao regime, TipoDeEntrega[] tipoDeEntrega)
        {
            ConfiguracoesDeEntregas config = new ConfiguracoesDeEntregas(regime, tipoDeEntrega);

            return(config);
        }