public void TestLanguages(ConversionTestCase testCase) { var mdBuilder = new StringBuilder(); var sourceLanguage = Enum.GetName(typeof(Language), testCase.SyntaxTreeVisitor.Language); var targetLanguage = Enum.GetName(typeof(Language), testCase.CodeWriter.Language); var source = ReadTestData(testCase.TestDirectory, testCase.Name, testCase.SyntaxTreeVisitor.Language); var target = ReadTestData(testCase.TestDirectory, testCase.Name, testCase.CodeWriter.Language); var ast = testCase.SyntaxTreeVisitor.Visit(source); var actual = testCase.CodeWriter.Write(ast).Trim(); Assert.Equal(target, actual); var testResult = new TestCaseResult { Category = testCase.Category, Description = testCase.Description, Name = testCase.Name, Source = testCase.SyntaxTreeVisitor.Language, Target = testCase.CodeWriter.Language, SourceContent = source, TargetContent = target }; _fixture.AddTestCase(testResult); }
public void TestLanguages(ConversionTestCase testCase) { var mdBuilder = new StringBuilder(); var sourceLanguage = Enum.GetName(typeof(Language), testCase.SyntaxTreeVisitor.Language); var targetLanguage = Enum.GetName(typeof(Language), testCase.CodeWriter.Language); var source = ReadTestData(testCase.TestDirectory, testCase.Name, testCase.SyntaxTreeVisitor.Language); var target = ReadTestData(testCase.TestDirectory, testCase.Name, testCase.CodeWriter.Language); var ast = testCase.SyntaxTreeVisitor.Visit(source); var actual = testCase.CodeWriter.Write(ast).Trim(); Assert.Equal(target, actual); mdBuilder.AppendLine($"## {testCase.Description}"); mdBuilder.AppendLine($"### Source: {sourceLanguage}"); mdBuilder.AppendLine($"```{sourceLanguage.ToLower()}"); mdBuilder.AppendLine(source); mdBuilder.AppendLine($"```"); mdBuilder.AppendLine($"### Target: {targetLanguage}"); mdBuilder.AppendLine($"```{targetLanguage.ToLower()}"); mdBuilder.AppendLine(actual); mdBuilder.AppendLine($"```"); mdBuilder.AppendLine(); var outputFile = $"{sourceLanguage}To{targetLanguage}.md"; var languageTestsMarkdownPath = Path.Combine(Fixture.GetTestDirectory(), @"..\..\..\..\..\docs\" + outputFile); File.AppendAllText(languageTestsMarkdownPath, mdBuilder.ToString()); }