private static string BuildParameterStringFromStepParameters(List<Parameter> parameters, NodeExamples examples, int exampleIndex) { string parameterString = string.Empty; foreach (var parameter in parameters) { string parameterType = parameter.Type; string parameterValue = parameter.Value; if (parameter.IsFromExampleTable) { int index = examples.GetIndexOfParameter(parameter.Value); if (index >= 0) { parameterType = "string"; parameterValue = examples.Rows[exampleIndex][index]; } } if (parameterString != string.Empty) { parameterString += ", "; } if (parameterType == "string") { parameterString += string.Format("\"{0}\"", parameterValue); } else { parameterString += parameterValue; } } return parameterString; }
private string BuildParameterString(List<Parameter> parameters, List<string[]> rows, NodeExamples examples, int exampleIndex) { string retstr; if (rows.Count > 0) { if (parameters.Count > 0) { retstr = string.Format("table{0},{1},{2},{3}", _tableNumberInScenario, rows.Count, rows[0].Length, BuildParameterStringFromStepParameters(parameters, examples, exampleIndex)); } else { retstr = string.Format("table{0},{1},{2}", _tableNumberInScenario, rows.Count, rows[0].Length); } } else { retstr = BuildParameterStringFromStepParameters(parameters, examples, exampleIndex); } return retstr; }
private void BuildStepMethodCall(NodeStep step, NodeExamples examples, int exampleIndex) { // if we have rows and first time thru scenario outline if (step.Rows.Count > 0 && exampleIndex == 1) // TODO: remove exampleIndex == 1 if parameterizing table arguments { _tableNumberInScenario++; // TODO: could pass in NodeExamples examples to support parameterizing table arguments BuildTestDataTable(step.Rows, Contents); } Contents.Add(string.Format("\t\t{0};", LanguageConfig.StepMethod(step.Name, BuildParameterString(step.Parameters, step.Rows, examples, exampleIndex)))); }