Пример #1
0
    // create text report for v1 execution known issues
    private static void KnownIssuesTextReport(Versions version, Languages language, IssueType issueType)
    {
        if (language != Languages.CSharp)
        {
            throw new NotImplementedException();
        }

        var issues = GetKnownIssues(version, language, issueType);

        var lang = language.AsString();
        var documentationLinks = TestDataGenerator.GetDocumentationLinks(version, language);
        var testNameSuffix     = $"{lang}-{version}-{issueType.Suffix()}";

        var unreferencedIssues = new HashSet <string>();

        var reportEntries = new List <ReportEntry>();

        foreach (KeyValuePair <string, KnownIssue> kv in issues)
        {
            var testName   = kv.Key;
            var knownIssue = kv.Value;
            var documentationLinkLookupKey = testName.Replace(testNameSuffix, $"{lang}-snippets.md");
            if (!documentationLinks.ContainsKey(documentationLinkLookupKey))
            {
                unreferencedIssues.Add(testName);
            }
            else
            {
                var documentationLink = documentationLinks[documentationLinkLookupKey];
                reportEntries.Add(new ReportEntry
                                  (
                                      testName,
                                      documentationLink,
                                      knownIssue
                                  ));
            }
        }

        if (unreferencedIssues.Count > 0)
        {
            var message = "There are known issue entries which are not referenced in the documentation," +
                          " please make sure that you have the latest changes from docs repo" +
                          " and remove the following from known issues list:" +
                          $"{Environment.NewLine}{string.Join(Environment.NewLine, unreferencedIssues)}";
            throw new InvalidDataException(message);
        }

        var fileName = $"{version}-{language.AsString()}-{issueType.LowerName()}-known-issues.md";

        WriteReportEntriesToFile(fileName, reportEntries);
    }