public RootViewModel(IEnumerable<Spec> specs) { RootFolder = new FolderViewModel(""); foreach (var spec in specs) { var c = spec.CallingMethod.DeclaringType; var testClassViewModel = RootFolder.SubFolder(c.Namespace).Class(c); testClassViewModel.Specs.Add(new SpecViewModel(spec)); } RootFolder.MergeSingleFolders(); foreach (var c in RootFolder.DescendantClasses()) { c.TrySortTestsByClassLayout(); } }
public FolderViewModel SubFolder(string path) { if (string.IsNullOrEmpty(path)) { return this; } var split = path.Split(new[] { '.' }, 2); var folder = SubFolders.SingleOrDefault(x => x.Name == split[0]); if (folder == null) { folder = new FolderViewModel(split[0]); SubFolders.Add(folder); } return folder.SubFolder(split.ElementAtOrDefault(1)); }
public FolderViewModel SubFolder(string path) { if (string.IsNullOrEmpty(path)) { return(this); } var split = path.Split(new[] { '.' }, 2); var folder = SubFolders.SingleOrDefault(x => x.Name == split[0]); if (folder == null) { folder = new FolderViewModel(split[0]); SubFolders.Add(folder); } return(folder.SubFolder(split.ElementAtOrDefault(1))); }
public RootViewModel(IEnumerable <Spec> specs) { RootFolder = new FolderViewModel(""); foreach (var spec in specs) { var c = spec.CallingMethod.DeclaringType; var testClassViewModel = RootFolder.SubFolder(c.Namespace).Class(c); testClassViewModel.Specs.Add(new SpecViewModel(spec)); } RootFolder.MergeSingleFolders(); foreach (var c in RootFolder.DescendantClasses()) { c.TrySortTestsByClassLayout(); } }
public System.Web.WebPages.HelperResult FolderToc(FolderViewModel folder) { return new System.Web.WebPages.HelperResult(__razor_helper_writer => { #line 178 "..\..\Output\SinglePageRazorTemplate.cshtml" if (!string.IsNullOrWhiteSpace(folder.Name)) { var statusCounts = folder.DescendantClasses().SelectMany(y => y.Specs.Select(x => x.Status)).ToList(); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\t\t<span class=\"folderName\">\r\n\t\t\t<span class=\"folderGlyph\"></span>\r\n\t\t\t<span class" + "=\"folderNameText\">"); #line 184 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, folder.Name); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "</span>\r\n\t\t\t<span class=\"graph\" style=\""); #line 185 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, Gradient(statusCounts)); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\" title=\""); #line 185 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, Title(statusCounts)); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, " in folder \'"); #line 185 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, folder.Name); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\'\"></span>\r\n\t\t</span>\r\n"); #line 187 "..\..\Output\SinglePageRazorTemplate.cshtml" } #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\t<ul data-tags=\""); #line 188 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, string.Join(" ", folder.DescendantClasses().SelectMany(x => x.Specs).SelectMany(x => x.EffectiveTags()).Distinct())); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\">\r\n"); #line 189 "..\..\Output\SinglePageRazorTemplate.cshtml" foreach (var child in folder.SubFolders.OrderBy(x => x.Name)) { var featureClass = folder.DescendantClasses().SelectMany(x => x.Specs).Select(x => x.Status).DefaultIfEmpty(Status.Pending).Max().ToString().ToLowerInvariant(); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\t\t\t<li class=\"folder "); #line 192 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, featureClass); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\">\r\n\r\n\t\t\t\t"); #line 194 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, FolderToc(child)); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\r\n\t\t\t</li>\r\n"); #line 196 "..\..\Output\SinglePageRazorTemplate.cshtml" } #line default #line hidden #line 197 "..\..\Output\SinglePageRazorTemplate.cshtml" foreach (var feature in folder.Classes.OrderBy(x => x.Name)) { var maxStatus = feature.Specs.Select(x => x.Status).DefaultIfEmpty(Status.Pending).Max(); var featureClass = maxStatus.ToString().ToLowerInvariant(); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\t\t\t<li class=\"feature "); #line 201 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, featureClass); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\" title=\"Feature: "); #line 201 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, feature.Name); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, " ("); #line 201 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, maxStatus); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, ")\" data-tags=\""); #line 201 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, string.Join(" ", feature.Specs.SelectMany(x => x.EffectiveTags()).Distinct())); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\">\r\n\t\t\t\t<a class=\"featureLink\" href=\"#"); #line 202 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, AnchorName(feature)); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\">"); #line 202 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, feature.Name); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "</a>\r\n\t\t\t\t<ul class=\"scenarios\">\r\n"); #line 204 "..\..\Output\SinglePageRazorTemplate.cshtml" foreach (var spec in feature.Specs) { var scenarioClass = spec.Status.ToString().ToLowerInvariant(); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\t\t\t\t\t\t<li class=\""); #line 207 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, scenarioClass); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\" title=\"Scenario: "); #line 207 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, spec.MethodName); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, " ("); #line 207 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, spec.Status); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, ")\" data-tags=\""); #line 207 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, string.Join(" ", spec.EffectiveTags())); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\">\r\n\t\t\t\t\t\t\t<a class=\"scenarioLink\" href=\"#"); #line 208 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, AnchorName(feature, spec)); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\">"); #line 208 "..\..\Output\SinglePageRazorTemplate.cshtml" WriteTo(@__razor_helper_writer, spec.MethodName); #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "</a>\r\n\t\t\t\t\t\t</li>\r\n"); #line 210 "..\..\Output\SinglePageRazorTemplate.cshtml" } #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\t\t\t\t</ul>\r\n\t\t\t</li>\r\n"); #line 213 "..\..\Output\SinglePageRazorTemplate.cshtml" } #line default #line hidden WriteLiteralTo(@__razor_helper_writer, "\t</ul>\r\n"); #line 215 "..\..\Output\SinglePageRazorTemplate.cshtml" #line default #line hidden }); }