public SpecificationEngine(ISystem system, ISpecRunner runner, IExecutionObserver observer) { _system = system; _runner = runner; _executionQueue = new ConsumingQueue(request => { if (request.IsCancelled) { return; } _warmup.Wait(30.Seconds()); observer.SpecStarted(request); var results = _runner.Execute(request, _executionQueue ); if (!request.IsCancelled && results != null) { // TODO -- combine the two things here? request.SpecExecutionFinished(results); observer.SpecFinished(request); } }); _warmup = _system.Warmup().ContinueWith(t => { if (t.IsFaulted) { _runner.MarkAsInvalid(t.Exception); } }); }
public SpecificationEngine(ISystem system, ISpecRunner runner, IExecutionObserver observer) { _system = system; _runner = runner; _executionQueue = new ConsumingQueue(request => { if (request.IsCancelled) { return; } _warmup.Wait(30.Seconds()); observer.SpecStarted(request); var results = _runner.Execute(request, _executionQueue); if (!request.IsCancelled && results != null) { // TODO -- combine the two things here? request.SpecExecutionFinished(results); observer.SpecFinished(request); } }); _warmup = _system.Warmup().ContinueWith(t => { if (t.IsFaulted) { _runner.MarkAsInvalid(t.Exception); } }); }
private void startTheConsumingQueues(FixtureLibrary library) { _planning = new ConsumingQueue(request => { var culture = Project.CurrentProject?.Culture; if (culture.IsNotEmpty()) { Thread.CurrentThread.CurrentCulture = new CultureInfo(culture); } request.CreatePlan(library); _executionQueue.Enqueue(request); }); _reader = new ConsumingQueue(request => { if (request.Specification.SpecType == SpecType.header) { request.ReadXml(); } _planning.Enqueue(request); }); _reader.Start(); _planning.Start(); }
public SpecificationEngine(ISystem system, ISpecRunner runner, IExecutionObserver observer) { if (system == null) { throw new ArgumentNullException(nameof(system)); } if (runner == null) { throw new ArgumentNullException(nameof(runner)); } if (observer == null) { throw new ArgumentNullException(nameof(observer)); } _system = system; _runner = runner; _executionQueue = new ConsumingQueue(request => { if (request.IsCancelled) { return; } _warmup.Wait(30.Seconds()); var results = _runner.Execute(request, _executionQueue); if (!request.IsCancelled && (results != null)) { // TODO -- combine the two things here? request.SpecExecutionFinished(results); observer.SpecFinished(request); } }); var warmup = _system.Warmup(); if (warmup == null) { throw new InvalidOperationException($"{system} cannot return a null value from {nameof(ISystem.Warmup)}()"); } if (warmup.Status == TaskStatus.WaitingForActivation) { warmup.Start(); } _warmup = warmup.ContinueWith(t => { if (t.IsFaulted) { _runner.MarkAsInvalid(t.Exception); } }); }
private void startTheConsumingQueues(FixtureLibrary library) { _planning = new ConsumingQueue(request => { request.CreatePlan(library); _executionQueue.Enqueue(request); }); _reader = new ConsumingQueue(request => { request.ReadXml(); _planning.Enqueue(request); }); _reader.Start(); _planning.Start(); }
private void startTheConsumingQueues(FixtureLibrary library) { _planning = new ConsumingQueue(request => { var culture = Project.CurrentProject?.Culture; if (culture.IsNotEmpty()) { #if NET46 Thread.CurrentThread.CurrentCulture = new CultureInfo(culture); #else CultureInfo.CurrentCulture = new CultureInfo(culture); #endif } request.CreatePlan(library); _executionQueue.Enqueue(request); }); _planning.Start(); }
private void startTheConsumingQueues(FixtureLibrary library) { _planning = new ConsumingQueue(request => { request.CreatePlan(library); _executionQueue.Enqueue(request); }); _reader = new ConsumingQueue(request => { request.ReadXml(); _planning.Enqueue(request); }); _reader.Start(); _planning.Start(); }
private void startTheConsumingQueues(FixtureLibrary library) { _planning = new ConsumingQueue(request => { var culture = Project.CurrentProject?.Culture; if (culture.IsNotEmpty()) { #if NET46 Thread.CurrentThread.CurrentCulture = new CultureInfo(culture); #else CultureInfo.CurrentCulture = new CultureInfo(culture); #endif } request.CreatePlan(library); _executionQueue.Enqueue(request); }); _planning.Start(); }