public IServiceTestCoverageModelTo New(Guid workflowId, CoverageArgs args, List <IServiceTestModelTO> serviceTestModelTos) { var allTestNodesCovered = serviceTestModelTos.Select(test => new SingleTestNodesCovered(test.TestName, test.TestSteps)).ToArray(); var result = new ServiceTestCoverageModelTo { WorkflowId = workflowId, OldReportName = args?.OldReportName, ReportName = args?.ReportName, LastRunDate = DateTime.Now, AllTestNodesCovered = allTestNodesCovered, }; var coveredNodes = allTestNodesCovered.SelectMany(o => o.TestNodesCovered); var workflow = _resourceCatalog.GetWorkflow(workflowId); var workflowNodes = workflow.WorkflowNodesForHtml; var testedNodes = coveredNodes.GroupBy(i => i.ActivityID).Select(o => o.First()) .Where(o => o.MockSelected is false) .Select(u => u.ActivityID); var n = testedNodes.Intersect(workflowNodes.Select(o => o.UniqueID)).Count(); double totalNodes = workflowNodes.Count; result.CoveragePercentage = n / totalNodes; result.TotalCoverage = n / totalNodes; return(result); }
public IServiceTestCoverageModelTo New(Guid workflowId, ICoverageArgs args, List <IServiceTestModelTO> serviceTestModelTos) { var workflow = _resourceCatalog.GetWorkflow(workflowId); var coverageReports = new WorkflowCoverageReports(workflow); var coverageModelTo = new ServiceTestCoverageModelTo { WorkflowId = workflowId, OldReportName = args?.OldReportName, ReportName = args?.ReportName, LastRunDate = DateTime.Now, AllTestNodesCovered = serviceTestModelTos .Select(test => new SingleTestNodesCovered(test.TestName, test.TestSteps)) .ToArray() }; coverageReports.Add(coverageModelTo); (double TotalCoverage, _, _) = coverageReports.GetTotalCoverage(); coverageModelTo.TotalCoverage = TotalCoverage; return(coverageModelTo); }