/// <summary> /// Appends <paramref name="notifiers"/> to existing <see cref="Notifier"/> making all of them used during notification. /// </summary> /// <param name="notifiers">Notifiers to append</param> /// <returns>Self</returns> /// <exception cref="ArgumentNullException">Throws when <paramref name="notifiers"/> collection or any of it's item is null.</exception> public FeatureProgressNotifierConfiguration AppendNotifiers(params IFeatureProgressNotifier[] notifiers) { ThrowIfSealed(); if (notifiers == null) { throw new ArgumentNullException(nameof(notifiers)); } Notifier = DelegatingFeatureProgressNotifier.Compose(Enumerable.Repeat(Notifier, 1).Concat(notifiers)); return(this); }
/// <summary> /// Updates <see cref="Notifier"/> with new value. /// </summary> /// <param name="notifier">New notifier to set.</param> /// <returns>Self.</returns> /// <exception cref="ArgumentNullException">Throws when <paramref name="notifier"/> is null.</exception> public FeatureProgressNotifierConfiguration UpdateNotifier(IFeatureProgressNotifier notifier) { ThrowIfSealed(); if (notifier == null) { throw new ArgumentNullException(nameof(notifier)); } Notifier = notifier; return(this); }
private async Task BeginNotification(int i, IFeatureProgressNotifier featureNotifier) { var scenarioNotifier = GetScenarioNotifier(); await Task.Yield(); _currentId.Value = i; featureNotifier.NotifyFeatureStart(Fake.Object <TestResults.TestFeatureInfo>()); await Task.Yield(); scenarioNotifier.NotifyScenarioStart(Fake.Object <TestResults.TestScenarioInfo>()); await Task.Yield(); scenarioNotifier.NotifyStepStart(Fake.Object <TestResults.TestStepInfo>()); await Task.Yield(); scenarioNotifier.NotifyStepComment(Fake.Object <TestResults.TestStepInfo>(), "comment"); await Task.Yield(); scenarioNotifier.NotifyStepComment(Fake.Object <TestResults.TestStepInfo>(), "comment2"); await Task.Yield(); scenarioNotifier.NotifyStepFinished(Fake.Object <TestResults.TestStepResult>()); await Task.Yield(); scenarioNotifier.NotifyStepStart(Fake.Object <TestResults.TestStepInfo>()); await Task.Yield(); scenarioNotifier.NotifyStepComment(Fake.Object <TestResults.TestStepInfo>(), "comment"); await Task.Yield(); scenarioNotifier.NotifyStepComment(Fake.Object <TestResults.TestStepInfo>(), "comment2"); await Task.Yield(); scenarioNotifier.NotifyStepFinished(Fake.Object <TestResults.TestStepResult>()); await Task.Yield(); var scenarioResult = Fake.Object <TestResults.TestScenarioResult>(); scenarioResult.Steps = new TestResults.TestStepResult[0]; scenarioNotifier.NotifyScenarioFinished(scenarioResult); await Task.Yield(); var featureResult = Fake.Object <TestResults.TestFeatureResult>(); featureResult.Scenarios = new TestResults.TestScenarioResult[0]; featureNotifier.NotifyFeatureFinished(featureResult); }
public TestableIntegrationContextBuilder WithFeatureProgressNotifier(IFeatureProgressNotifier notifier) { _configuration.FeatureProgressNotifierConfiguration().UpdateNotifier(notifier); return(this); }
public TestableFeatureRunnerRepository(IFeatureProgressNotifier featureProgressNotifier, Func <object, IScenarioProgressNotifier> scenarioProgressNotifier) : this(TestableIntegrationContextBuilder.Default().WithFeatureProgressNotifier(featureProgressNotifier).WithScenarioProgressNotifierProvider(scenarioProgressNotifier)) { }