Exemple #1
0
 /// <summary>
 /// Notifies that scenario has started.
 /// </summary>
 /// <param name="scenario">Scenario info.</param>
 public void NotifyScenarioStart(IScenarioInfo scenario)
 {
     foreach (var notifier in _notifiers)
     {
         notifier.NotifyScenarioStart(scenario);
     }
 }
 public RunnableScenario(RunnableScenarioContext scenarioContext, IScenarioInfo 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);
 }
 public async Task ExecuteAsync(IScenarioInfo scenario, Func <Task> scenarioInvocation)
 {
     try
     {
         ScenarioExecutionContext.Current = new ScenarioExecutionContext();
         await scenarioInvocation();
     }
     finally
     {
         ScenarioExecutionContext.Current = null;
     }
 }
Exemple #4
0
 /// <summary>
 /// Notifies that scenario has started.
 /// </summary>
 /// <param name="scenario">Scenario info.</param>
 public void NotifyScenarioStart(IScenarioInfo scenario)
 {
     _onNotify($"SCENARIO: {FormatLabels(scenario.Labels)}{scenario.Name}");
 }
Exemple #5
0
 public ScenarioResult(IScenarioInfo info)
 {
     Info   = info;
     Status = ExecutionStatus.NotRun;
 }
Exemple #6
0
 public void NotifyScenarioStart(IScenarioInfo scenario)
 {
     _currentScenarioNumber = _manager.StartNewScenario();
     _notifier.NotifyScenarioStart(scenario);
 }
 private string FormatScenario(IScenarioInfo scenario)
 {
     return($"{scenario.Name} [{string.Join(", ", scenario.Labels)}] <{string.Join(", ", scenario.Categories)}>");
 }
 public void NotifyScenarioStart(IScenarioInfo scenario)
 {
     _notifications.Add($"Scenario Start: {FormatScenario(scenario)}");
 }
Exemple #9
0
        public void It_should_wire_steps_scenario_and_feature_infos()
        {
            IFeatureInfo    featureInfo      = null;
            IFeatureResult  featureResult    = null;
            IScenarioInfo   scenarioInfo     = null;
            IScenarioResult scenarioResult   = null;
            var             stepInfos        = new List <IStepInfo>();
            var             stepResults      = new List <IStepResult>();
            var             featureNotifier  = new Mock <IFeatureProgressNotifier>();
            var             scenarioNotifier = new Mock <IScenarioProgressNotifier>();

            featureNotifier.Setup(x => x.NotifyFeatureStart(It.IsAny <IFeatureInfo>()))
            .Callback((IFeatureInfo x) => featureInfo = x);
            featureNotifier.Setup(x => x.NotifyFeatureFinished(It.IsAny <IFeatureResult>()))
            .Callback((IFeatureResult x) => featureResult = x);
            scenarioNotifier.Setup(x => x.NotifyScenarioStart(It.IsAny <IScenarioInfo>()))
            .Callback((IScenarioInfo x) => scenarioInfo = x);
            scenarioNotifier.Setup(x => x.NotifyScenarioFinished(It.IsAny <IScenarioResult>()))
            .Callback((IScenarioResult x) => scenarioResult = x);
            scenarioNotifier.Setup(x => x.NotifyStepStart(It.IsAny <IStepInfo>()))
            .Callback((IStepInfo x) => stepInfos.Add(x));
            scenarioNotifier.Setup(x => x.NotifyStepFinished(It.IsAny <IStepResult>()))
            .Callback((IStepResult x) => stepResults.Add(x));

            var feature = new TestableFeatureRunnerRepository(featureNotifier.Object, fixture => scenarioNotifier.Object)
                          .GetRunnerFor(GetType());
            var runner = feature.GetBddRunner(this);

            try
            {
                runner.Test().TestGroupScenario(Composite_group);
            }
            catch { }
            feature.Dispose();

            Assert.That(featureInfo, Is.Not.Null);
            Assert.That(featureInfo.RuntimeId, Is.Not.EqualTo(Guid.Empty), "Feature should have unique RuntimeId");
            Assert.That(featureResult.Info, Is.SameAs(featureInfo));

            Assert.That(scenarioInfo, Is.Not.Null);
            Assert.That(scenarioInfo.RuntimeId, Is.Not.EqualTo(Guid.Empty), "Scenario should have unique RuntimeId");
            Assert.That(scenarioResult.Info, Is.SameAs(scenarioInfo));
            Assert.That(scenarioInfo.Parent, Is.SameAs(featureInfo));

            Assert.That(stepInfos.Select(x => x.RuntimeId).Distinct().Count(), Is.EqualTo(9), "Each step should have unique RuntimeId");
            Assert.That(stepInfos[0].Parent, Is.SameAs(scenarioInfo));
            Assert.That(stepInfos[1].Parent, Is.SameAs(stepInfos[0]));
            Assert.That(stepInfos[2].Parent, Is.SameAs(stepInfos[1]));
            Assert.That(stepInfos[3].Parent, Is.SameAs(stepInfos[1]));
            Assert.That(stepInfos[4].Parent, Is.SameAs(stepInfos[1]));
            Assert.That(stepInfos[5].Parent, Is.SameAs(stepInfos[0]));
            Assert.That(stepInfos[6].Parent, Is.SameAs(stepInfos[5]));
            Assert.That(stepInfos[7].Parent, Is.SameAs(stepInfos[5]));
            Assert.That(stepInfos[8].Parent, Is.SameAs(stepInfos[5]));

            Assert.That(stepResults[0].Info, Is.SameAs(stepInfos[2]), "1.1.1");
            Assert.That(stepResults[1].Info, Is.SameAs(stepInfos[3]), "1.1.2");
            Assert.That(stepResults[2].Info, Is.SameAs(stepInfos[4]), "1.1.3");
            Assert.That(stepResults[3].Info, Is.SameAs(stepInfos[1]), "1.1");
            Assert.That(stepResults[4].Info, Is.SameAs(stepInfos[6]), "1.2.1");
            Assert.That(stepResults[5].Info, Is.SameAs(stepInfos[7]), "1.2.2");
            Assert.That(stepResults[6].Info, Is.SameAs(stepInfos[8]), "1.2.3");
            Assert.That(stepResults[7].Info, Is.SameAs(stepInfos[5]), "1.2");
            Assert.That(stepResults[8].Info, Is.SameAs(stepInfos[0]), "1");
        }
Exemple #10
0
 public void NotifyScenarioStart(IScenarioInfo scenario)
 {
 }
 public Task ExecuteAsync(IScenarioInfo scenario, Func <Task> scenarioInvocation)
 {
     throw new NotImplementedException();
 }
Exemple #12
0
 public Task ExecuteScenarioAsync(IScenarioInfo scenario, Func <Task> scenarioInvocation)
 {
     return(new RecursiveExecutor <IScenarioInfo>(_scenarioExecutors, scenario, scenarioInvocation).ExecuteAsync());
 }