public ProjectStepDefinitionBinding(ScenarioBlock stepDefinitionType, Regex regex, ITagExpression scope, ProjectStepDefinitionImplementation implementation) { StepDefinitionType = stepDefinitionType; Regex = regex; Scope = scope; Implementation = implementation; }
public ProjectStepDefinitionBinding ImportStepDefinition(StepDefinition stepDefinition) { try { var stepDefinitionType = (ScenarioBlock)Enum.Parse(typeof(ScenarioBlock), stepDefinition.Type); var regex = new Regex(stepDefinition.Regex, RegexOptions.CultureInvariant); var sourceLocation = ParseSourceLocation(stepDefinition.SourceLocation); var scope = ParseScope(stepDefinition.Scope); var parameterTypes = ParseParameterTypes(stepDefinition.ParamTypes); if (!_implementations.TryGetValue(stepDefinition.Method, out var implementation)) { implementation = new ProjectStepDefinitionImplementation(stepDefinition.Method, parameterTypes, sourceLocation); _implementations.Add(stepDefinition.Method, implementation); } return(new ProjectStepDefinitionBinding(stepDefinitionType, regex, scope, implementation)); } catch (Exception ex) { _logger.LogWarning($"Invalid binding: {ex.Message}"); return(null); } }
public ProjectStepDefinitionBinding(ScenarioBlock stepDefinitionType, Regex regex, Scope scope, ProjectStepDefinitionImplementation implementation, string expression = null, string error = null) { StepDefinitionType = stepDefinitionType; Regex = regex; Scope = scope; Implementation = implementation; Expression = expression; Error = error; }