public IResult <TestResult> BuildFromContext(ScenarioContext scenarioContext, FeatureContext featureContext) { if (scenarioContext is null) { return(Result <TestResult> .Failure(new ArgumentNullException(nameof(scenarioContext)))); } ulong nanoseconds = ConvertTicksToPositiveNanoseconds(scenarioContext.Stopwatch.Elapsed.Ticks); switch (scenarioContext.ScenarioExecutionStatus) { case ScenarioExecutionStatus.OK: return(BuildPassedResult(nanoseconds)); case ScenarioExecutionStatus.TestError: return(BuildFailedResult(nanoseconds, _testErrorMessageFactory.BuildFromScenarioContext(scenarioContext))); case ScenarioExecutionStatus.StepDefinitionPending: return(BuildPendingResult(nanoseconds, _testPendingMessageFactory.BuildFromScenarioContext(scenarioContext))); case ScenarioExecutionStatus.BindingError: return(BuildAmbiguousResult(nanoseconds, _testAmbiguousMessageFactory.BuildFromScenarioContext(scenarioContext))); case ScenarioExecutionStatus.UndefinedStep: return(BuildUndefinedResult(nanoseconds, _testUndefinedMessageFactory.BuildFromContext(scenarioContext, featureContext))); default: return(Result <TestResult> .Failure($"Status '{scenarioContext.ScenarioExecutionStatus}' is unknown or not supported.")); } }
public IResult <TestResult> BuildFailedResult(ulong durationInNanoseconds, ScenarioContext scenarioContext) { return(BuildTestResult(durationInNanoseconds, Status.Failed, _testErrorMessageFactory.BuildFromScenarioContext(scenarioContext))); }