コード例 #1
0
        private IIntegrableCompositeStepBuilder WithStepContext(ExecutionContextDescriptor contextDescriptor)
        {
            if (_contextDescriptor != null || !ReferenceEquals(_steps, EmptySteps))
            {
                throw new InvalidOperationException("Step context can be specified only once, when no steps are specified yet.");
            }

            _contextDescriptor = contextDescriptor;
            return(this);
        }
コード例 #2
0
 public RunnableScenario(RunnableScenarioContext scenarioContext, ScenarioInfo scenarioInfo,
                         IEnumerable <StepDescriptor> stepDescriptors, ExecutionContextDescriptor contextDescriptor,
                         IEnumerable <IScenarioDecorator> scenarioDecorators)
 {
     _scenarioContext         = scenarioContext;
     _stepDescriptors         = stepDescriptors;
     _contextDescriptor       = contextDescriptor;
     _decoratedScenarioMethod = DecoratingExecutor.DecorateScenario(this, RunScenarioAsync, scenarioDecorators);
     _result = new ScenarioResult(scenarioInfo);
 }
コード例 #3
0
        public IIntegrableCompositeStepBuilder WithStepContext(Func <object> contextProvider, bool takeOwnership)
        {
            if (_contextDescriptor != null || !ReferenceEquals(_steps, EmptySteps))
            {
                throw new InvalidOperationException("Step context can be specified only once, when no steps are specified yet.");
            }

            _contextDescriptor = new ExecutionContextDescriptor(contextProvider, takeOwnership);
            return(this);
        }
コード例 #4
0
 private static object InstantiateSubStepsContext(ExecutionContextDescriptor contextDescriptor, IDependencyContainer container)
 {
     try
     {
         return(contextDescriptor.ContextResolver(container));
     }
     catch (Exception e)
     {
         throw new InvalidOperationException($"Sub-steps context initialization failed: {e.Message}", e);
     }
 }
コード例 #5
0
 public RunnableScenario(ScenarioInfo scenario, Func <DecoratingExecutor, object, IDependencyContainer, RunnableStep[]> stepsProvider,
                         ExecutionContextDescriptor contextDescriptor, IScenarioProgressNotifier progressNotifier,
                         DecoratingExecutor decoratingExecutor, IEnumerable <IScenarioDecorator> scenarioDecorators,
                         ExceptionProcessor exceptionProcessor, IDependencyContainer container)
 {
     _info               = scenario;
     _stepsProvider      = stepsProvider;
     _contextDescriptor  = contextDescriptor;
     _progressNotifier   = progressNotifier;
     _decoratingExecutor = decoratingExecutor;
     _scenarioDecorators = scenarioDecorators;
     _exceptionProcessor = exceptionProcessor;
     _container          = container;
     _result             = new ScenarioResult(_info);
 }
コード例 #6
0
 public Task ExecuteAsync(ScenarioInfo scenario, Func<DecoratingExecutor, object, IDependencyContainer, RunnableStep[]> stepsProvider,
     ExecutionContextDescriptor contextDescriptor, IScenarioProgressNotifier progressNotifier,
     IEnumerable<IScenarioDecorator> scenarioDecorators, ExceptionProcessor exceptionProcessor,
     IDependencyContainer container)
 {
     var runnableScenario = new RunnableScenario(scenario, stepsProvider, contextDescriptor, progressNotifier, _decoratingExecutor, scenarioDecorators, exceptionProcessor, container);
     try
     {
         return runnableScenario.RunAsync();
     }
     finally
     {
         ScenarioExecuted?.Invoke(runnableScenario.Result);
     }
 }
コード例 #7
0
 public ICoreScenarioBuilder WithContext(Func <IDependencyResolver, object> contextProvider, Action <ContainerConfigurator> scopeConfigurator)
 {
     _contextDescriptor = new ExecutionContextDescriptor(contextProvider, scopeConfigurator);
     return(this);
 }
コード例 #8
0
 public ICoreScenarioBuilder WithContext(Func <object> contextProvider, bool takeOwnership)
 {
     _contextDescriptor = new ExecutionContextDescriptor(contextProvider, takeOwnership);
     return(this);
 }
コード例 #9
0
 /// <summary>
 /// Constructor allowing to initialize instance with sub steps and context provider.
 /// </summary>
 /// <param name="subStepsContext">Context descriptor that will be used to instantiate context for the sub steps.</param>
 /// <param name="subSteps">Sub steps.</param>
 public CompositeStepResultDescriptor(ExecutionContextDescriptor subStepsContext, IEnumerable <StepDescriptor> subSteps)
 {
     SubStepsContext = subStepsContext ?? throw new ArgumentNullException(nameof(subStepsContext));
     SubSteps        = subSteps;
 }
コード例 #10
0
 internal CompositeStep(ExecutionContextDescriptor contextDescriptor, IEnumerable <StepDescriptor> steps)
     : base(contextDescriptor, steps)
 {
 }
コード例 #11
0
 public TestCompositeStep(ExecutionContextDescriptor contextDescriptor, params StepDescriptor[] subSteps)
     : base(contextDescriptor, subSteps)
 {
 }
コード例 #12
0
 public ContextProvider(ExecutionContextDescriptor contextDescriptor)
 {
     _contextDescriptor = contextDescriptor ?? throw new ArgumentNullException(nameof(contextDescriptor));
 }