Exemplo n.º 1
0
        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);
                }
            });
        }
Exemplo n.º 2
0
        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);
                }
            });
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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);
                }
            });
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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();
        }
Exemplo n.º 7
0
        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();
        }