public ProcessorsTests() { _processors = new Processors(); _memory = Substitute.For <IMemory>(); _output = Substitute.For <IOutput>(); _input = Substitute.For <IInput>(); }
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); }