private async Task <TestResultsGroupData[]> GetTestResultsWithWorkItemsAsync(TestResultsDetails resultIdsToFetch) { TestResultsDetailsForGroup[] resultDetailGroupsToParse = resultIdsToFetch.ResultsForGroup.ToArray(); var testResultDetailsParser = GetParser(resultIdsToFetch); var filteredTestResultGroups = await resultIdsToFetch .ResultsForGroup .ParallelSelectAsync(async resultsForGroup => { var resultGroup = new TestResultsGroupData { GroupName = testResultDetailsParser.GetGroupByValue(resultsForGroup) }; var results = await GetTestResultsWithBugRefsAsync(resultsForGroup); var bugsRefs = results.Select(result => result.AssociatedBugRefs).Merge(); var workItemDictionary = await GetWorkItemsAsync(bugsRefs); SetAssociatedBugs(results, workItemDictionary); results.ForEach(resultGroup.AddTestResult); return(resultGroup); }); return(filteredTestResultGroups); }
public TestResultDetailsParserForRun(TestResultsDetails testResultDetailsForRunGroup, ILogger logger) : base(testResultDetailsForRunGroup, logger) { if (!string.Equals(testResultDetailsForRunGroup.GroupByField, TestResultsConstants.TestRun, StringComparison.InvariantCultureIgnoreCase)) { throw new EmailReportException( $"Expected test result group type to be {TestResultsConstants.TestRun}. But found {testResultDetailsForRunGroup.GroupByField}"); } }
private async Task <TestSummaryGroup> GetTestSummaryByPriorityAsync() { TestResultsDetails testSummaryItemsByRuns = await _tcmApiHelper.GetTestSummaryAsync(TestResultsConstants.Priority); var testResultDetailsParserForPriority = new TestResultDetailsParserForPriority(testSummaryItemsByRuns, _logger); var testSummaryByRun = new TestSummaryGroup { GroupingType = TestResultsGroupingType.Priority, Runs = testResultDetailsParserForPriority.GetSummaryItems() }; return(testSummaryByRun); }
private ITestResultDetailsParser GetParser(TestResultsDetails resultDetails) { var groupByField = resultDetails.GroupByField; if (string.Equals(groupByField, TestResultsConstants.TestRun, StringComparison.InvariantCultureIgnoreCase)) { return(new TestResultDetailsParserForRun(resultDetails, _logger)); } if (string.Equals(groupByField, TestResultsConstants.Priority, StringComparison.InvariantCultureIgnoreCase)) { return(new TestResultDetailsParserForPriority(resultDetails, _logger)); } throw new EmailReportException($"TestResultsDetails by group {groupByField} not supported"); }
public static bool HasFilteredTestResults(this TestResultsDetails resultIdsToFetch, int maxItems) { var hasFiltered = false; var remainingItems = maxItems; foreach (TestResultsDetailsForGroup group in resultIdsToFetch.ResultsForGroup) { var currentItemsSize = group.Results.Count; if (currentItemsSize > remainingItems) { hasFiltered = true; List <TestCaseResult> results = group.Results.ToList(); var itemCountToRemove = currentItemsSize - remainingItems; results.RemoveLastNItems(itemCountToRemove); group.Results = results; } remainingItems -= group.Results.Count; } resultIdsToFetch.ResultsForGroup = resultIdsToFetch.ResultsForGroup.Where(group => group.Results.Any()).ToList(); return(hasFiltered); }
protected AbstractTestResultDetailsParser(TestResultsDetails testResultDetails, ILogger logger) { TestResultDetails = testResultDetails; _logger = logger; }