public BoundStepSuggestions(StepDefinitionType stepDefinitionType, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory) { StepBinding = null; StepDefinitionType = stepDefinitionType; NativeSuggestionItem = nativeSuggestionItemFactory.Create("[unbound steps]", "...", 0, "nb", this); suggestions = new StepSuggestionList <TNativeSuggestionItem>(nativeSuggestionItemFactory); }
public StepSuggestionProvider(INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory) { boundStepSuggestions = new RegexDictionary <BoundStepSuggestions <TNativeSuggestionItem> >(item => item.StepBinding == null ? null : item.StepBinding.Regex); notMatchingSteps = new Dictionary <BindingType, BoundStepSuggestions <TNativeSuggestionItem> >() { { BindingType.Given, new BoundStepSuggestions <TNativeSuggestionItem>(BindingType.Given, nativeSuggestionItemFactory) }, { BindingType.When, new BoundStepSuggestions <TNativeSuggestionItem>(BindingType.When, nativeSuggestionItemFactory) }, { BindingType.Then, new BoundStepSuggestions <TNativeSuggestionItem>(BindingType.Then, nativeSuggestionItemFactory) } }; this.nativeSuggestionItemFactory = nativeSuggestionItemFactory; }
protected StepSuggestionProvider(INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory, IProjectScope projectScope) { boundStepSuggestions = new RegexDictionary <BoundStepSuggestions <TNativeSuggestionItem> >(item => item.StepBinding == null ? null : item.StepBinding.Regex); notMatchingSteps = new Dictionary <StepDefinitionType, BoundStepSuggestions <TNativeSuggestionItem> > { { StepDefinitionType.Given, new BoundStepSuggestions <TNativeSuggestionItem>(StepDefinitionType.Given, nativeSuggestionItemFactory) }, { StepDefinitionType.When, new BoundStepSuggestions <TNativeSuggestionItem>(StepDefinitionType.When, nativeSuggestionItemFactory) }, { StepDefinitionType.Then, new BoundStepSuggestions <TNativeSuggestionItem>(StepDefinitionType.Then, nativeSuggestionItemFactory) } }; this.nativeSuggestionItemFactory = nativeSuggestionItemFactory; this.projectScope = projectScope; }
public StepSuggestionList(INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory, IEnumerable <IBoundStepSuggestion <TNativeSuggestionItem> > initialItems = null) { insertionTextComparer = new InsertionTextComparer(nativeSuggestionItemFactory); if (initialItems == null) { items = new List <IBoundStepSuggestion <TNativeSuggestionItem> >(); } else { items = new List <IBoundStepSuggestion <TNativeSuggestionItem> >(initialItems); items.Sort(insertionTextComparer); } }
public BoundStepSuggestions(IStepDefinitionBinding stepBinding, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory) { if (stepBinding == null) { throw new ArgumentNullException("stepBinding"); } StepBinding = stepBinding; StepDefinitionType = stepBinding.StepDefinitionType; string suggestionText = GetSuggestionText(stepBinding); NativeSuggestionItem = nativeSuggestionItemFactory.Create(suggestionText, GetInsertionText(StepBinding), 0, StepDefinitionType.ToString().Substring(0, 1) + "-b", this); suggestions = new StepSuggestionList <TNativeSuggestionItem>(nativeSuggestionItemFactory); }
private void AddInstances(ScenarioStep scenarioStep, ScenarioOutline scenarioOutline, Feature feature, StepContext stepContext, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory) { foreach (var exampleSet in scenarioOutline.Examples.ExampleSets) { foreach (var row in exampleSet.Table.Body) { var replacedText = paramRe.Replace(scenarioStep.Text, match => { string param = match.Groups["param"].Value; int headerIndex = Array.FindIndex(exampleSet.Table.Header.Cells, c => c.Value.Equals(param)); if (headerIndex < 0) { return(match.Value); } return(row.Cells[headerIndex].Value); }); var newStep = scenarioStep.Clone(); newStep.Text = replacedText; instances.Add(new StepInstance <TNativeSuggestionItem>(newStep, feature, stepContext, nativeSuggestionItemFactory, 2) { ParentTemplate = this }); } } }
public StepInstanceTemplate(ScenarioStep scenarioStep, ScenarioOutline scenarioOutline, Feature feature, StepContext stepContext, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory) { StepDefinitionType = (StepDefinitionType)scenarioStep.ScenarioBlock; Language = stepContext.Language; NativeSuggestionItem = nativeSuggestionItemFactory.Create(scenarioStep.Text, StepInstance <TNativeSuggestionItem> .GetInsertionText(scenarioStep), 1, StepDefinitionType.ToString().Substring(0, 1) + "-t", this); instances = new StepSuggestionList <TNativeSuggestionItem>(nativeSuggestionItemFactory); AddInstances(scenarioStep, scenarioOutline, feature, stepContext, nativeSuggestionItemFactory); var match = paramRe.Match(scenarioStep.Text); StepPrefix = match.Success ? scenarioStep.Text.Substring(0, match.Index) : scenarioStep.Text; }
public StepInstance(ScenarioStep step, StepScopeNew stepScope, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory, int level = 1) : base((BindingType)step.ScenarioBlock, (StepDefinitionKeyword)step.StepKeyword, step.Keyword, step.Text, stepScope) { this.NativeSuggestionItem = nativeSuggestionItemFactory.Create(step.Text, GetInsertionText(step), level, BindingType.ToString().Substring(0, 1), this); }
public InsertionTextComparer(INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory) { this.nativeSuggestionItemFactory = nativeSuggestionItemFactory; }
public BoundInstanceTemplate(StepInstanceTemplate <TNativeSuggestionItem> template, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory, IEnumerable <IBoundStepSuggestion <TNativeSuggestionItem> > suggestions) { Template = template; this.suggestions = new StepSuggestionList <TNativeSuggestionItem>(nativeSuggestionItemFactory, suggestions); NativeSuggestionItem = nativeSuggestionItemFactory.CloneTo(template.NativeSuggestionItem, this); }
public StepInstance(ScenarioStep step, Feature feature, StepContext stepContext, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory, int level = 1) : base((StepDefinitionType)step.ScenarioBlock, (StepDefinitionKeyword)step.StepKeyword, step.Keyword, step.Text, stepContext) { this.NativeSuggestionItem = nativeSuggestionItemFactory.Create(step.Text, GetInsertionText(step), level, StepDefinitionType.ToString().Substring(0, 1), this); this.FilePosition = step.FilePosition; this.SourceFile = feature.SourceFile; }
public StepInstanceTemplate(ScenarioStep scenarioStep, ScenarioOutline scenarioOutline, StepScopeNew stepScope, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory) { BindingType = (BindingType)scenarioStep.ScenarioBlock; NativeSuggestionItem = nativeSuggestionItemFactory.Create(scenarioStep.Text, StepInstance <TNativeSuggestionItem> .GetInsertionText(scenarioStep), 1, BindingType.ToString().Substring(0, 1) + "-t", this); instances = new StepSuggestionList <TNativeSuggestionItem>(nativeSuggestionItemFactory); AddInstances(scenarioStep, scenarioOutline, stepScope, nativeSuggestionItemFactory); var match = paramRe.Match(scenarioStep.Text); StepPrefix = match.Success ? scenarioStep.Text.Substring(0, match.Index) : scenarioStep.Text; }