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 GenerateAllTestsCoverage(string resourceName, Guid resourceId, List <IServiceTestModelTO> serviceTestModelTos) { var coverageArgs = new CoverageArgs { OldReportName = "", ReportName = resourceName }; var serviceTestCoverageModelTo = _serviceAllTestsCoverageModelToFactory.New(resourceId, coverageArgs, serviceTestModelTos); UpdateTestCoverageReports(resourceId, serviceTestCoverageModelTo); return(serviceTestCoverageModelTo); }
IServiceTestCoverageModelTo SaveSingleTestCoverageToDisk(Guid resourceId, IServiceTestModelTO serviceTestModelTo) { var serviceTestModelTos = new List <IServiceTestModelTO> { serviceTestModelTo }; var coverageArgs = new CoverageArgs { OldReportName = serviceTestModelTo.OldTestName, ReportName = serviceTestModelTo.TestName }; var serviceTestCoverageModelTo = _serviceAllTestsCoverageModelToFactory.New(resourceId, coverageArgs, serviceTestModelTos); SaveCoverageReport(resourceId, serviceTestCoverageModelTo); UpdateTestCoverageReports(resourceId, serviceTestCoverageModelTo); return(serviceTestCoverageModelTo); }