Esempio n. 1
0
        private void BuildStepBindingFromMethod(MethodInfo method, Attribute scenarioStepAttr, List<BindingInfo> bindings)
        {
            Regex regex = new Regex("^" + scenarioStepAttr.GetProperty<string>("Regex") + "$", RegexOptions.Compiled | RegexOptions.CultureInvariant);
            var parameters = method.GetParameters();

            var hasTableArg = parameters.Length == 0 
                                  ? false
                                  : parameters[parameters.Length - 1].ParameterType.Name == "Table";

            BindingInfo bindingInfo = new BindingInfo
                                          {
                                              BindingType = GetBindingType(scenarioStepAttr),
                                              Regex = regex,
                                              MethodReference = String.Format("{0}.{1}({2})",
                                                                              method.ReflectedType.FullName, method.Name, String.Join(", ", parameters.Select(pi => pi.ParameterType.Name).ToArray())),
                                              ParameterNames = parameters.Select(pi => pi.Name).ToArray(),
                                              HasMultilineTextArg = false, //TODO
                                              HasTableArg = hasTableArg
                                          };

            bindings.Add(bindingInfo);
        }