public void ThrowOnDuplicateId() { var job = new ParallelJob(new ConsoleLogProvider()) .AddTask("a", () => { }); TestUtility.ShouldFail <InvalidOperationException>(() => job.AddTask("a", () => { }), "has already been added"); }
private ParallelJob PrepareGeneratorsJob(IList <IGenerator> generators) { var allDependencies = ResolveDependencies(generators); var validDependencies = FilterInvalidDependencies(generators, allDependencies); var job = new ParallelJob(_logProvider); foreach (var generator in generators) { var generatorName = GetGeneratorName(generator); validDependencies.TryGetValue(generatorName, out var generatorDependencies); job.AddTask(generatorName, () => { _logger.Info(() => $"Starting {generatorName}."); var sw = Stopwatch.StartNew(); generator.Generate(); _performanceLogger.Write(sw, () => $"{generatorName} completed."); }, generatorDependencies ?? new List <string>()); } return(job); }