public void Calculte(ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog) { AllTestResults = new List <IServiceTestModelTO>(); _allCoverageReports = new AllCoverageReports(); foreach (var coverageResource in _workflows) { if (coverageResource is null) { continue; } SetWarewolfTestResults(testCatalog, coverageResource); SetWarewolfCoverageReports(testCoverageCatalog, coverageResource); } var workflowCoverageReportsTOs = _allCoverageReports.Calcute(); AllCoverageReports = workflowCoverageReportsTOs; TotalWorkflowNodesCoveredCount = workflowCoverageReportsTOs.Sum(o => o.CoveredWorkflowNodesIds.Count()); TotalWorkflowNodesCount = GetTotalWorkflowsNodesCount(); TotalWorkflowNodesCoveredPercentage = GetTotalWorkflowNodesCoveredPercentage(); _allCoverageReports.EndTime = DateTime.Now; }
public Executor(IWorkspaceRepository workspaceRepository, IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory) { _repository = workspaceRepository; _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _testCoverageCatalog = testCoverageCatalog; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IWorkspaceRepository workspaceRepository, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory) { _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _testCoverageCatalog = testCoverageCatalog; _workspaceRepository = workspaceRepository; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; }
protected ExecutorBase(IWorkspaceRepository workspaceRepository, IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory, IEsbChannelFactory esbChannelFactory, IJwtManager jwtManager) { _repository = workspaceRepository; _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _testCoverageCatalog = testCoverageCatalog; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; _esbChannelFactory = esbChannelFactory; _jwtManager = jwtManager; }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IWorkspaceRepository workspaceRepository, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory, IEsbChannelFactory esbChannelFactory, ISecuritySettings securitySettings, IJwtManager jwtManager) { _resourceCatalog = resourceCatalog; _testCatalog = testCatalog; _testCoverageCatalog = testCoverageCatalog; _workspaceRepository = workspaceRepository; _authorizationService = authorizationService; _dataObjectFactory = dataObjectFactory; _esbChannelFactory = esbChannelFactory; _securitySettings = securitySettings; _jwtManager = jwtManager; }
public override void ProcessRequest(ICommunicationContext ctx) { var postDataListId = ctx.GetDataListID(); if (postDataListId != null) { _catalog = _catalog ?? ResourceCatalog.Instance; _testCatalog = _testCatalog ?? TestCatalog.Instance; _testCoverageCatalog = _testCoverageCatalog ?? TestCoverageCatalog.Instance; new WebPostRequestHandler(_catalog, _testCatalog, _testCoverageCatalog).ProcessRequest(ctx); return; } var serviceName = ctx.GetServiceName(); var workspaceId = ctx.GetWorkspaceID(); var requestTo = new WebRequestTO { ServiceName = serviceName, WebServerUrl = ctx.Request.Uri.ToString(), Dev2WebServer = $"{ctx.Request.Uri.Scheme}://{ctx.Request.Uri.Authority}" }; var data = SubmittedData.GetPostData(ctx); if (!string.IsNullOrEmpty(data)) { requestTo.RawRequestPayload = data; } var variables = ctx.Request.BoundVariables; if (variables != null) { foreach (string key in variables) { requestTo.Variables.Add(key, variables[key]); } } // Execute in its own thread to give proper context ;) Thread.CurrentPrincipal = ctx.Request.User; var responseWriter = CreateForm(requestTo, serviceName, workspaceId, ctx.FetchHeaders(), ctx.Request.User); ctx.Send(responseWriter); }
private void SetWarewolfCoverageReports(ITestCoverageCatalog testCoverageCatalog, IWarewolfWorkflow coverageResource) { var resourceId = coverageResource.ResourceID; var coverageReports = new WorkflowCoverageReports(coverageResource); if (!string.IsNullOrEmpty(_reportName) && _reportName != "*") { var report = testCoverageCatalog.Fetch(resourceId); var tempcoverageReport = report?.Find(oo => oo.ReportName?.ToUpper() == _reportName.ToUpper()); if (tempcoverageReport != null) { coverageReports.Add(tempcoverageReport); } } else { testCoverageCatalog.Fetch(resourceId) ?.ForEach(o => coverageReports.Add(o)); } _allCoverageReports.Add(coverageReports); }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog) : this(resourceCatalog, testCatalog, testCoverageCatalog, WorkspaceRepository.Instance, ServerAuthorizationService.Instance, new DataObjectFactory()) { }
public WebPostRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog) : base(catalog, testCatalog, testCoverageCatalog) { }
private static (AllCoverageReports AllCoverageReports, TestResults AllTestResults) RunListOfCoverage(ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, Guid workspaceGuid, IResourceCatalog catalog) { var allTestResults = new TestResults(); var allCoverageReports = new AllCoverageReports { StartTime = DateTime.Now }; var resources = catalog.GetResources <IWarewolfWorkflow>(workspaceGuid); var selectedResources = resources.Where(resource => coverageData.CoverageReportResourceIds.Contains(resource.ResourceID)).ToArray(); var testResultsTemp = new List <WorkflowTestResults>(); var coverageReportsTemp = new List <WorkflowCoverageReports>(); foreach (var coverageResourceId in coverageData.CoverageReportResourceIds) { var res = selectedResources.FirstOrDefault(o => o.ResourceID == coverageResourceId); if (res is null) { continue; } var workflowTestResults = new WorkflowTestResults(); testCatalog.Fetch(coverageResourceId) ?.ForEach(o => workflowTestResults.Add(o)); testResultsTemp.Add(workflowTestResults); var coverageReports = new WorkflowCoverageReports(res); testCoverageCatalog.Fetch(coverageResourceId) ?.ForEach(o => coverageReports.Add(o)); coverageReportsTemp.Add(coverageReports); } testResultsTemp.ForEach(o => allTestResults.Add(o)); coverageReportsTemp.ForEach(o => allCoverageReports.Add(o)); allTestResults.EndTime = DateTime.Now; allCoverageReports.EndTime = DateTime.Now; return(allCoverageReports, allTestResults); }
public Executor(IWorkspaceRepository workspaceRepository, IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IServiceTestExecutor serviceTestExecutor, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory, IEsbChannelFactory esbChannelFactory, IJwtManager jwtManager) : base(workspaceRepository, resourceCatalog, testCatalog, testCoverageCatalog, serviceTestExecutor, authorizationService, dataObjectFactory, esbChannelFactory, jwtManager) { }
private static WarewolfWorkflowReports RunListOfCoverage(ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, Guid workspaceGuid, IResourceCatalog catalog) { var resourceReportTemp = new WarewolfWorkflowReports(coverageData.CoverageReportResources, coverageData.ReportName); resourceReportTemp.Calculte(testCoverageCatalog, testCatalog); resourceReportTemp.EndTime = DateTime.Now; return(resourceReportTemp); }
public static DataListFormat RunCoverageAndReturnHTML(this ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, IResourceCatalog catalog, Guid workspaceGuid, out string executePayload) { var(allCoverageReports, allTestResults) = RunListOfCoverage(coverageData, testCoverageCatalog, testCatalog, workspaceGuid, catalog); var formatter = DataListFormat.CreateFormat("HTML", EmitionTypes.Cover, "text/html; charset=utf-8"); var stringWriter = new StringWriter(); using (var writer = new HtmlTextWriter(stringWriter)) { writer.SetupNavBarHtml(); allTestResults.Results .SelectMany(o => o.Results) .ToList() .SetupCountSummaryHtml(writer, coverageData); allCoverageReports.AllCoverageReportsSummary .Where(o => o.HasTestReports) .ToList() .ForEach(oo => { var resourcePath = string.Empty; if (oo.Resource is IFilePathResource filePath) { resourcePath = filePath.Path; } writer.SetupWorkflowRowHtml(resourcePath, coverageData, oo); }); } executePayload = stringWriter.ToString(); return(formatter); }
public static DataListFormat ExecuteTests(IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCatalog testCatalog, IResourceCatalog resourceCatalog, out string executePayload, ITestCoverageCatalog testCoverageCatalog) { executePayload = null; DataListFormat formatter = null; if (dataObject.TestsResourceIds?.Any() ?? false) { if (dataObject.ReturnType == EmitionTypes.TEST) { formatter = dataObject.RunMultipleTestBatchesAndReturnJSON(userPrinciple, workspaceGuid, serializer, resourceCatalog, testCatalog, out executePayload, testCoverageCatalog); } if (dataObject.ReturnType == EmitionTypes.TRX) { formatter = dataObject.RunMultipleTestBatchesAndReturnTRX(userPrinciple, workspaceGuid, serializer, resourceCatalog, testCatalog, out executePayload, testCoverageCatalog); } dataObject.ResourceID = Guid.Empty; } else { Dev2.Common.Dev2Logger.Warn("No tests found to execute for requested resource", Dev2.Common.GlobalConstants.WarewolfWarn); } Dev2DataListDecisionHandler.Instance.RemoveEnvironment(dataObject.DataListID); dataObject.Environment = null; return(formatter ?? DataListFormat.CreateFormat("XML", EmitionTypes.XML, "text/xml")); }
public static DataListFormat GetTestCoverageReports(ICoverageDataObject coverageObject, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCoverageCatalog testCoverageCatalog, IResourceCatalog resourceCatalog, out string executePayload) { DataListFormat formatter = null; if (coverageObject.CoverageReportResourceIds.Any()) { if (coverageObject.ReturnType == EmitionTypes.CoverJson) { formatter = coverageObject.RunCoverageAndReturnJSON(testCoverageCatalog, resourceCatalog, workspaceGuid, serializer, out executePayload); } else if (coverageObject.ReturnType == EmitionTypes.Cover) { formatter = coverageObject.RunCoverageAndReturnHTML(testCoverageCatalog, resourceCatalog, workspaceGuid, out executePayload); } else { executePayload = null; } } else { executePayload = null; throw new Exception("do not expect this to be executed any longer"); } return(formatter); }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IServiceTestExecutor serviceTestExecutor, IWorkspaceRepository workspaceRepository, IAuthorizationService authorizationService, IDataObjectFactory dataObjectFactory, IEsbChannelFactory esbChannelFactory, ISecuritySettings securitySettings) : this(resourceCatalog, testCatalog, testCoverageCatalog, serviceTestExecutor, workspaceRepository, authorizationService, dataObjectFactory, esbChannelFactory, securitySettings, new JwtManager(securitySettings)) { }
public static DataListFormat GetTestCoverageReports(ICoverageDataObject coverageObject, Guid workspaceGuid, Dev2JsonSerializer serializer, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, IResourceCatalog resourceCatalog, out string executePayload) { DataListFormat formatter = null; if (coverageObject.CoverageReportResourceIds?.Any() ?? false) { if (coverageObject.ReturnType == EmitionTypes.CoverJson) { formatter = coverageObject.RunCoverageAndReturnJSON(testCoverageCatalog, testCatalog, resourceCatalog, workspaceGuid, serializer, out executePayload); } else if (coverageObject.ReturnType == EmitionTypes.Cover) { formatter = coverageObject.RunCoverageAndReturnHTML(testCoverageCatalog, testCatalog, resourceCatalog, workspaceGuid, out executePayload); } else { executePayload = null; } } else { executePayload = null; Common.Dev2Logger.Warn("No test coverage reports found to execute for requested resource", Common.GlobalConstants.WarewolfWarn); } return(formatter ?? DataListFormat.CreateFormat("HTML", EmitionTypes.Cover, "text/html; charset=utf-8")); }
public static DataListFormat RunCoverageAndReturnHTML(this ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, IResourceCatalog catalog, Guid workspaceGuid, out string executePayload) { var allCoverageReports = RunListOfCoverage(coverageData, testCoverageCatalog, workspaceGuid, catalog); var allTests = TestCatalog.Instance.FetchAllTests(); var formatter = DataListFormat.CreateFormat("HTML", EmitionTypes.Cover, "text/html; charset=utf-8"); var stringWriter = new StringWriter(); using (var writer = new HtmlTextWriter(stringWriter)) { writer.SetupNavBarHtml("nav-bar-row", "Coverage Summary"); allTests.SetupCountSummaryHtml(writer, "count-summary row", allCoverageReports, coverageData); allCoverageReports.AllCoverageReportsSummary .Where(o => o.HasTestReports) .ToList() .ForEach(oo => { var resourcePath = string.Empty; if (oo.Resource is IFilePathResource filePath) { resourcePath = filePath.Path; } writer.AddAttribute(HtmlTextWriterAttribute.Class, "SetupWorkflowPathHtml"); writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "#333"); writer.AddStyleAttribute(HtmlTextWriterStyle.FontWeight, "bold"); writer.AddStyleAttribute(HtmlTextWriterStyle.FontSize, "16px"); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "20%"); writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "8px 16px 16px 8px"); writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "inline-block"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write(resourcePath); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "SetupWorkflowPathHtml-link"); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100px"); writer.AddStyleAttribute(HtmlTextWriterStyle.FontWeight, "bold"); writer.AddStyleAttribute(HtmlTextWriterStyle.FontSize, "12px"); writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "inline-block"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Target, "_new"); var testUrl = coverageData.GetTestUrl(resourcePath); writer.AddAttribute(HtmlTextWriterAttribute.Href, testUrl); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Run Tests"); writer.RenderEndTag(); writer.RenderEndTag(); var(totalCoverage, workflowNodes, coveredNodes) = oo.GetTotalCoverage(); writer.SetupWorkflowReportsHtml(totalCoverage, "SetupWorkflowReportsHtml"); writer.AddStyleAttribute(HtmlTextWriterStyle.FontSize, "16px"); writer.AddStyleAttribute(HtmlTextWriterStyle.FontWeight, "500"); writer.AddStyleAttribute(HtmlTextWriterStyle.Margin, "0 0 0 35px"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "workflow-nodes-row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); workflowNodes.ForEach(node => node.SetupWorkflowNodeHtml(writer, "workflow-nodes", coveredNodes)); writer.RenderEndTag(); }); } executePayload = stringWriter.ToString(); return(formatter); }
public WebGetRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog) { _catalog = catalog; _testCatalog = testCatalog; _testCoverageCatalog = testCoverageCatalog; }
private static AllCoverageReports RunListOfCoverage(ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, Guid workspaceGuid, IResourceCatalog catalog) { var allCoverageReports = new AllCoverageReports { StartTime = DateTime.Now }; var resources = catalog.GetResources <IWarewolfWorkflow>(workspaceGuid); var selectedResources = resources.Where(resource => coverageData.CoverageReportResourceIds.Contains(resource.ResourceID)).ToArray(); testCoverageCatalog.ReloadAllReports(); var coverageReportsTemp = new List <WorkflowCoverageReports>(); foreach (var coverageResourceId in coverageData.CoverageReportResourceIds) { var res = selectedResources.FirstOrDefault(o => o.ResourceID == coverageResourceId); if (res is null) { continue; } var coverageReports = new WorkflowCoverageReports(res); var allWorkflowReports = testCoverageCatalog.Fetch(coverageResourceId); if (allWorkflowReports?.Count > 0) { foreach (var workflowReport in allWorkflowReports) { coverageReports.Add(workflowReport); } coverageReportsTemp.Add(coverageReports); } } foreach (var item in coverageReportsTemp) { allCoverageReports.Add(item); } allCoverageReports.EndTime = DateTime.Now; return(allCoverageReports); }
protected AbstractWebRequestHandler(IResourceCatalog resourceCatalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IEsbChannelFactory esbChannelFactory, ISecuritySettings securitySettings) : this(resourceCatalog, testCatalog, testCoverageCatalog, null, WorkspaceRepository.Instance, ServerAuthorizationService.Instance, new DataObjectFactory(), esbChannelFactory, securitySettings, new JwtManager(securitySettings)) { }
public static DataListFormat RunMultipleTestBatchesAndReturnJSON(this IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, IResourceCatalog catalog, ITestCatalog testCatalog, out string executePayload, ITestCoverageCatalog testCoverageCatalog, IServiceTestExecutorWrapper serviceTestExecutorWrapper) { var testResults = RunListOfTests(dataObject, userPrinciple, workspaceGuid, serializer, catalog, testCatalog, testCoverageCatalog, serviceTestExecutorWrapper); var formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var objArray = testResults.Results .Where(o => o.HasTestResults) .Select(o => { var name = o.Resource.ResourceName; if (o.Resource is IFilePathResource filePath) { name = filePath.Path; } return(new JObject { { "ResourceID", o.Resource.ResourceID }, { "Name", name }, { "Tests", new JArray(o.Results.Select(o1 => o1.BuildTestResultJSONForWebRequest())) } }); }); var obj = new JObject { { "StartTime", testResults.StartTime }, { "EndTime", testResults.EndTime }, { "Results", new JArray(objArray) }, }; executePayload = serializer.Serialize(obj); return(formatter); }
public WebGetRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog) : base(catalog, testCatalog, testCoverageCatalog, new DefaultEsbChannelFactory(), new SecuritySettings()) { }
public static DataListFormat RunMultipleTestBatchesAndReturnTRX(this IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, IResourceCatalog catalog, ITestCatalog testCatalog, out string executePayload, ITestCoverageCatalog testCoverageCatalog, IServiceTestExecutorWrapper serviceTestExecutorWrapper) { var testResults = RunListOfTests(dataObject, userPrinciple, workspaceGuid, serializer, catalog, testCatalog, testCoverageCatalog, serviceTestExecutorWrapper); var formatter = DataListFormat.CreateFormat("XML", EmitionTypes.XML, "text/xml"); executePayload = ServiceTestModelTRXResultBuilder.BuildTestResultTRX(dataObject.ServiceName, testResults.Results.SelectMany(o => o.Results).ToList()); return(formatter); }
public WebPostRequestHandler(IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IEsbChannelFactory esbChannelFactory) : base(catalog, testCatalog, testCoverageCatalog, esbChannelFactory, new SecuritySettings()) { }
static TestResults RunListOfTests(IDSFDataObject dataObject, IPrincipal userPrinciple, Guid workspaceGuid, Dev2JsonSerializer serializer, IResourceCatalog catalog, ITestCatalog testCatalog, ITestCoverageCatalog testCoverageCatalog, IServiceTestExecutorWrapper serviceTestExecutorWrapper) { var result = new TestResults(); var selectedResources = catalog.GetResources(workspaceGuid) ?.Where(resource => dataObject.TestsResourceIds.Contains(resource.ResourceID)).ToArray(); if (selectedResources != null) { var workflowTaskList = new List <Task <WorkflowTestResults> >(); foreach (var testsResourceId in dataObject.TestsResourceIds) { var workflowTask = Task <WorkflowTestResults> .Factory.StartNew(() => { var workflowTestTaskList = new List <Task <IServiceTestModelTO> >(); var res = selectedResources.FirstOrDefault(o => o.ResourceID == testsResourceId); if (res is null) { return(null); } else { var resourcePath = res.GetResourcePath(workspaceGuid).Replace("\\", "/"); var workflowTestResults = new WorkflowTestResults(res); var allTests = testCatalog.Fetch(testsResourceId); foreach (var(test, dataObjectClone) in from test in allTests let dataObjectClone = dataObject.Clone() select(test, dataObjectClone)) { dataObjectClone.Environment = new ExecutionEnvironment(); dataObjectClone.TestName = test.TestName; dataObjectClone.ServiceName = res.ResourceName; dataObjectClone.ResourceID = res.ResourceID; var lastTask = serviceTestExecutorWrapper.ExecuteTestAsync(resourcePath, userPrinciple, workspaceGuid, serializer, dataObjectClone); workflowTestTaskList.Add(lastTask); var report = testCoverageCatalog.FetchReport(res.ResourceID, test.TestName); var lastTestCoverageRun = report?.LastRunDate; if (report is null || test.LastRunDate > lastTestCoverageRun) { testCoverageCatalog.GenerateSingleTestCoverage(res.ResourceID, lastTask.Result); } } Task.WaitAll(workflowTestTaskList.Cast <Task>().ToArray()); foreach (var task in workflowTestTaskList) { workflowTestResults.Add(task.Result); } var testResults = workflowTestResults.Results; if (testResults.Count > 0) { testCoverageCatalog.GenerateAllTestsCoverage(res.ResourceName, res.ResourceID, testResults); } return(workflowTestResults); } }); if (workflowTask != null) { workflowTaskList.Add(workflowTask); } } Task.WaitAll(workflowTaskList.Cast <Task>().ToArray()); foreach (var task in workflowTaskList) { if (task.Result != null) { result.Add(task.Result); } } } result.EndTime = DateTime.Now; return(result); }
public static DataListFormat RunCoverageAndReturnJSON(this ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, IResourceCatalog catalog, Guid workspaceGuid, Dev2JsonSerializer serializer, out string executePayload) { var(allCoverageReports, _) = RunListOfCoverage(coverageData, testCoverageCatalog, testCatalog, workspaceGuid, catalog); var formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var objArray = allCoverageReports.AllCoverageReportsSummary .Where(o => o.HasTestReports) .Select(o => { var name = o.Resource.ResourceName; if (o.Resource is IFilePathResource filePath) { name = filePath.Path; } return(new JObject { { "ResourceID", o.Resource.ResourceID }, { "Name", name }, { "Reports", new JArray(o.Reports.Select(o1 => o1.BuildTestResultJSONForWebRequest())) } }); }); var obj = new JObject { { "StartTime", allCoverageReports.StartTime }, { "EndTime", allCoverageReports.EndTime }, { "Results", new JArray(objArray) }, }; executePayload = serializer.Serialize(obj); return(formatter); }
public static DataListFormat RunCoverageAndReturnJSON(this ICoverageDataObject coverageData, ITestCoverageCatalog testCoverageCatalog, ITestCatalog testCatalog, IResourceCatalog catalog, Guid workspaceGuid, Dev2JsonSerializer serializer, out string executePayload) { var warewolfWorkflowReports = RunListOfCoverage(coverageData, testCoverageCatalog, testCatalog, workspaceGuid, catalog); var allTestResults = warewolfWorkflowReports.AllTestResults; var allCoverageReports = warewolfWorkflowReports.AllCoverageReports; var formatter = DataListFormat.CreateFormat("JSON", EmitionTypes.JSON, "application/json"); var objArray = allCoverageReports .Select(o => { var name = o.Resource.ResourceName; if (o.Resource is IFilePathResource filePath) { name = filePath.Path; } return(new JObject { { "ResourceID", o.Resource.ResourceID }, { "Name", name }, { "Reports", new JArray(o.Reports.Select(o1 => o1.BuildTestResultJSONForWebRequest())) } }); }); var resultCoverageSummaryWriter = new StringWriter(); using (var writer = new JsonTextWriter(resultCoverageSummaryWriter)) { var totalNodes = warewolfWorkflowReports.TotalWorkflowNodesCount; var coveredNodes = warewolfWorkflowReports.TotalWorkflowNodesCoveredCount; var notCoveredNodes = totalNodes - coveredNodes; writer.WriteStartObject(); writer.WritePropertyName("TotalNodes"); writer.WriteValue(totalNodes); writer.WritePropertyName("CoveredNodes"); writer.WriteValue(coveredNodes); writer.WritePropertyName("NotCoveredNodes"); writer.WriteValue(notCoveredNodes); writer.WritePropertyName("TotalCoverage"); writer.WriteValueAsync(warewolfWorkflowReports.TotalWorkflowNodesCoveredPercentage); writer.WriteEndObject(); } var resultSummaryWriter = new StringWriter(); var reportName = coverageData.ReportName; if (!string.IsNullOrEmpty(reportName) && reportName != "*") { using (var writer = new JsonTextWriter(resultSummaryWriter)) { allTestResults.SetupResultSummaryJSON(writer); } } else { using (var writer = new JsonTextWriter(resultSummaryWriter)) { allTestResults.SetupResultSummaryJSON(writer); } } var obj = new JObject { { "StartTime", warewolfWorkflowReports.StartTime }, { "EndTime", warewolfWorkflowReports.EndTime }, { "CoverageSummary", JToken.Parse(resultCoverageSummaryWriter.ToString()) }, { "TestSummary", JToken.Parse(resultSummaryWriter.ToString()) }, { "TestResults", new JArray(objArray) }, }; executePayload = serializer.Serialize(obj); return(formatter); }