private static Vertex ToVertex(string name, string graphName) { return(ScenarioData.GetByGraphName(graphName).Vertices[name]); }
private static Edge ToEdge(string name, string graphName) { return(ScenarioData.GetByGraphName(graphName).Edges[name]); }
public void RunGherkinBasedTests(IMessageSerializer messageSerializer) { WriteOutput($"Starting Gherkin-based tests with serializer: {messageSerializer.GetType().Name}"); Gremlin.InstantiateTranslationsForTestRun(); var stepDefinitionTypes = GetStepDefinitionTypes(); var results = new List <ResultFeature>(); using var scenarioData = new ScenarioData(messageSerializer); CommonSteps.ScenarioData = scenarioData; foreach (var feature in GetFeatures()) { var resultFeature = new ResultFeature(feature); results.Add(resultFeature); foreach (var child in feature.Children) { var scenario = (Scenario)child; var failedSteps = new Dictionary <Step, Exception>(); resultFeature.Scenarios[scenario] = failedSteps; if (IgnoredScenarios.TryGetValue(scenario.Name, out var reason)) { failedSteps.Add(scenario.Steps.First(), new IgnoreException(reason)); continue; } if (scenario.Tags.Any(t => t.Name == "@AllowNullPropertyValues")) { failedSteps.Add(scenario.Steps.First(), new IgnoreException(IgnoreReason.NullPropertyValuesNotSupportedOnTestGraph)); continue; } StepBlock? currentStep = null; StepDefinition stepDefinition = null; foreach (var step in scenario.Steps) { var previousStep = currentStep; currentStep = GetStepBlock(currentStep, step.Keyword); if (currentStep == StepBlock.Given && previousStep != StepBlock.Given) { stepDefinition = GetStepDefinitionInstance(stepDefinitionTypes, step.Text); } if (stepDefinition == null) { throw new NotSupportedException( $"Step '{step.Text} not supported without a 'Given' step first"); } scenarioData.CurrentScenario = scenario; scenarioData.CurrentFeature = feature; var result = ExecuteStep(stepDefinition, currentStep.Value, step); if (result != null) { failedSteps.Add(step, result); // Stop processing scenario break; } } } } OutputResults(results); WriteOutput($"Finished Gherkin-based tests with serializer: {messageSerializer.GetType().Name}."); }