public void does_not_complete_until_all_specs_are_handled() { var specs = new[] { new Specification(), new Specification(), new Specification() }; var watcher = new BatchWatcher(specs); watcher.Task.IsCompleted.ShouldBeFalse(); var results = specs.Select(x => new SpecResults()).ToArray(); var specPlans = specs.Select(x => { return new SpecificationPlan(Enumerable.Empty<CompositeExecution>()) { Specification = x }; }).ToArray(); for (var i = 0; i < specs.Length; i++) { watcher.SpecHandled(specPlans[i], results[i]); if (i < specs.Length - 1) { watcher.Task.IsCompleted.ShouldBeFalse(); } } watcher.Task.IsCompleted.ShouldBeTrue(); var records = watcher.Task.Result; records.Select(x => x.results).ShouldBe(results); records.Select(x => x.specification).ShouldBe(specs); }
public void complete_immediately_with_no_specs() { var watcher = new BatchWatcher(Enumerable.Empty<Specification>()); watcher.Task.IsCompleted.ShouldBeTrue(); watcher.Task.Result.ShouldBe(Enumerable.Empty<BatchRecord>()); }