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);
        }
Exemple #2
0
        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);
        }