public PreProcesadorDeEntregasARemunerarComposto(ConfiguracoesDeEntregas configs, IMapeadorDeEntregas mapeadorDeEntregas, IRepositorioDeRegras repositorioDeRegras, IGerenciadorDeRequisicoesFinanceiras gerenciadorFinanceiro) { _mapeadorDeEntregas = mapeadorDeEntregas; _analisadoresEspecificos = new ConcurrentStack <Lazy <IPreProcessadorDeEntregas> >(); _repositorioDeRegras = repositorioDeRegras; _gerenciadorFinanceiro = gerenciadorFinanceiro; Configurar(configs); }
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); }) ); }); }
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()); }
private ConfiguracoesDeEntregas MontaConfiguracao(RegimeRemuneracao regime, TipoDeEntrega[] tipoDeEntrega) { ConfiguracoesDeEntregas config = new ConfiguracoesDeEntregas(regime, tipoDeEntrega); return(config); }