public ParsedSpec Parse(string specText) { var parsedSpec = new ParsedSpec(); foreach (var line in specText.SplitIntoLines()) { if (string.IsNullOrEmpty(line.Trim())) continue; if (IsScenarioLine(line)) { if (_inScenario) parsedSpec.AddScenario(_currentScenario); _currentScenario = new Scenario(); var match = Regex.Match(line.Trim(), "^Scenario:(.*)$"); _currentScenario.Name = StringifyMethodName(match.Groups[1].Value.Trim()); _inScenario = true; } else { var method = StringifyMethodName(line.Trim()); method = ReplaceWithPhraseStarter(method); _currentScenario.CalledMethods.Add(method); parsedSpec.AddHelperMethod(method); } } if (!string.IsNullOrEmpty(_currentScenario.Name)) parsedSpec.AddScenario(_currentScenario); return parsedSpec; }
public void AddScenario(Scenario scenario) { _scenarios.Add(scenario); }