Ejemplo n.º 1
0
        private MatchResultItem[] MatchSingleContextResult(Step step, IGherkinDocumentContext context, string stepText = null)
        {
            stepText = stepText ?? step.Text;
            var sdMatches = StepDefinitions.Select(sd => sd.Match(step, context, stepText)).Where(m => m != null).ToArray();

            if (!sdMatches.Any())
            {
                return new[] { MatchResultItem.CreateUndefined(step, stepText) }
            }
            ;

            sdMatches = HandleDataTableOverloads(step, sdMatches);
            sdMatches = HandleDocStringOverloads(step, sdMatches);
            sdMatches = HandleArgumentlessOverloads(step, sdMatches);
            sdMatches = HandleScopeOverloads(sdMatches);

            if (sdMatches.Length == 1)
            {
                return new[] { sdMatches[0] }
            }
            ;

            return(sdMatches.Select(mi => mi.CloneToAmbiguousItem()).ToArray());
        }