Ejemplo n.º 1
0
 public ProcessorsTests()
 {
     _processors = new Processors();
     _memory     = Substitute.For <IMemory>();
     _output     = Substitute.For <IOutput>();
     _input      = Substitute.For <IInput>();
 }
Ejemplo n.º 2
0
        public Processor(
            IList <IFileParser> fileParsers,
            IProcessors processorsConfig,
            ITimers timersConfig,
            IMaintenance maintenanceConfig,
            IParser parser,
            IPersister persister,
            ILogger logger,
            IDirectory directory,
            IPerformance performance
            )
        {
            // save the logger
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            const string directoryCounterName = "Processor: Average time processing Directories";
            const string fileCounterName      = "Processor: Average time processing Files";
            const string parserCounterName    = "Processor: Average time parsing files/folders";

            // Create the various processors, they will not start doing anything just yet
            // or at least, they shouldn't
            var directoriesCounter = new ProcessorPerformanceCounter(performance, directoryCounterName, logger);
            var filesCounter       = new ProcessorPerformanceCounter(performance, fileCounterName, logger);
            var parserCounter      = new ProcessorPerformanceCounter(performance, parserCounterName, logger);

            _eventTimer = new ProcessorTimer(
                new List <IProcessor>
            {
                new Folders(directoriesCounter, processorsConfig.UpdatesFolderPerEvent, persister, logger, directory, timersConfig.EventsMaxWaitTransactionMs),
                new Files(filesCounter, processorsConfig.UpdatesFilesPerEvent, fileParsers, processorsConfig.IgnoreFiles, persister, logger, directory, timersConfig.EventsMaxWaitTransactionMs)
            },
                _logger, processorsConfig.EventsProcessorMs);

            _maintenanceTimer = new ProcessorTimer(
                new List <IProcessor>
            {
                new Maintenance(maintenanceConfig.Active, parser, persister, logger)
            },
                _logger, (int)TimeSpan.FromMinutes(processorsConfig.MaintenanceProcessorMinutes).TotalMilliseconds);

            _parserTimer = new ProcessorTimer(
                new List <IProcessor>
            {
                new Parser(parserCounter, parser, logger)
            },
                _logger, (int)TimeSpan.FromMinutes(processorsConfig.ParserProcessorMinutes).TotalMilliseconds);
        }