public static void SetupWorkflowRowHtml(this HtmlTextWriter writer, string resourcePath, ICoverageDataObject coverageData, IWorkflowCoverageReportsTO coverageReports)
        {
            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 5px 8px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "inline-block");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.Write(resourcePath + "\\" + coverageData.ReportName?.Replace("*", ""));
            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();

            writer.SetupWorkflowReportsHtml(coverageReports.TotalCoverage, nameof(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);
            SetupCoverageCountSummaryHtml(writer, coverageReports);
            writer.RenderEndTag();

            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            coverageReports.WorkflowNodes.ToList()
            .ForEach(node => node.SetupWorkflowNodeHtml(writer, coverageReports.CoveredWorkflowNodes));

            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Br);
        }
Exemplo n.º 2
0
        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);
        }