public EngineAgent(int port, ISystem system) : this(port) { _running = RunningSystem.Create(system); _disposables.Add(system); }
private void buildRunningSystem() { var systemType = _project.DetermineSystemType(); var inner = Activator.CreateInstance(systemType).As <ISystem>(); _running = RunningSystem.Create(inner); _disposables.Add(_running.System); }
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)); } _running = RunningSystem.Create(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 = _running.System.Warmup(); if (warmup == null) { throw new InvalidOperationException( $"{system} cannot return a null value from {nameof(ISystem.Warmup)}()"); } _warmup = warmup.ContinueWith(t => { if (t.IsFaulted) { _runner.MarkAsInvalid(t.Exception); } }); }
public EngineAgent(int port, ISystem system) { if (system == null) { throw new ArgumentNullException(nameof(system)); } _socket = new SocketConnection(port, false, (s, json) => { EventAggregator.Messaging.SendJson(json); }); _disposables.Add(_socket); EventAggregator.Start(_socket); _running = RunningSystem.Create(system); _disposables.Add(system); }