public IEnumerator GetEnumerator() { foreach (var filePath in Directory.GetFiles("TestCases")) { var testCase = new FormatTestCase(); testCase.FileName = Path.GetFileNameWithoutExtension(filePath); using (var reader = new StreamReader(filePath)) { testCase.ConfigurationString = reader.ReadLine(); reader.ReadLine().Should().Be("INPUT"); testCase.Input = new List <UsingStatement>(); while (true) { string line = reader.ReadLine(); if ((line == null) || (line == "OUTPUT")) { break; } if (UsingStatement.TryParse(line, out var statement)) { testCase.Input.Add(statement); } } var outputBuffer = new StringWriter(); while (true) { string line = reader.ReadLine(); if (line == null) { break; } outputBuffer.WriteLine(line); } testCase.ExpectedOutput = outputBuffer.ToString(); yield return(testCase); } } }
public void Format_should_produce_matching_output(FormatTestCase testCase) { // Arrange var groupingRules = GroupingRule.Parse(testCase.ConfigurationString); var outputBuffer = new StringWriter(); // Act UsingStatementFormatter.Format( outputBuffer, testCase.Input, groupingRules); // Assert outputBuffer.ToString().Should().Be(testCase.ExpectedOutput); }