Beispiel #1
0
 public BoundStepSuggestions(StepDefinitionType stepDefinitionType, INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory)
 {
     StepBinding          = null;
     StepDefinitionType   = stepDefinitionType;
     NativeSuggestionItem = nativeSuggestionItemFactory.Create("[unbound steps]", "...", 0, "nb", this);
     suggestions          = new StepSuggestionList <TNativeSuggestionItem>(nativeSuggestionItemFactory);
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 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);
     }
 }
Beispiel #5
0
        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;
        }
Beispiel #8
0
 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);
 }
Beispiel #9
0
 public InsertionTextComparer(INativeSuggestionItemFactory <TNativeSuggestionItem> nativeSuggestionItemFactory)
 {
     this.nativeSuggestionItemFactory = nativeSuggestionItemFactory;
 }
Beispiel #10
0
 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);
 }
Beispiel #11
0
 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;
 }
Beispiel #12
0
        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;
        }