public void NamespaceTestImplementingHTMLRender() { var ns = new NamespaceApiView { Name = "TestNamespace", NamedTypes = new NamedTypeApiView[] { new NamedTypeApiView() { Accessibility = "public", Events = new EventApiView[] { }, Fields = new FieldApiView[] { }, Id = "", Implementations = new TypeReferenceApiView[] { }, IsSealed = false, IsStatic = false, Methods = new MethodApiView[] { }, Name = "TestNamedType", NamedTypes = new NamedTypeApiView[] { }, Properties = new PropertyApiView[] { }, TypeKind = "class", TypeParameters = new TypeParameterApiView[] { } } }, Namespaces = new NamespaceApiView[] { } }; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(ns, list); Assert.Equal("<span class=\"keyword\">namespace</span> <a id=\"\" class=\"name commentable\">TestNamespace</a> {" + Environment.NewLine + " <span class=\"keyword\">public</span> <span class=\"keyword\">class</span> <a h" + "ref=\"#\" id=\"\" class=\"class commentable\">TestNamedType</a> {" + Environment.NewLine + " }" + Environment.NewLine + "}", list.ToString()); }
public void NamedTypeTestTypeParamHTMLRender() { var tp = new TypeParameterApiView { Name = "T", Attributes = new string[] { } }; var nt = new NamedTypeApiView { Name = "TestInterface", TypeKind = "interface", Accessibility = "public", Id = "TestInterface", Events = new EventApiView[] { }, Fields = new FieldApiView[] { }, Implementations = new TypeReferenceApiView[] { }, Methods = new MethodApiView[] { }, NamedTypes = new NamedTypeApiView[] { }, Properties = new PropertyApiView[] { }, TypeParameters = new TypeParameterApiView[] { tp } }; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(nt, list); Assert.Equal("<span class=\"keyword\">public</span> <span class=\"keyword\">interface</span> <a href=\"#\" id=\"TestInterface\" class=\"class commentable\">TestInterface</a><" + "<a href=\"#T\" class=\"type\">T</a>> {" + Environment.NewLine + "}", list.ToString()); }
public void NamedTypeTestImplementingHTMLRender() { var p = new PropertyApiView { Name = "TestProperty", Type = new TypeReferenceApiView(new TokenApiView[] { new TokenApiView("string", TypeReferenceApiView.TokenType.BuiltInType) }), Accessibility = "protected", IsAbstract = false, IsVirtual = false, HasSetMethod = true }; var nt = new NamedTypeApiView { Name = "ImplementingClass", TypeKind = "class", Accessibility = "public", Id = "ImplementingClass", Events = new EventApiView[] { }, Fields = new FieldApiView[] { }, Implementations = new TypeReferenceApiView[] { new TypeReferenceApiView(new TokenApiView[] { new TokenApiView("BaseClass", TypeReferenceApiView.TokenType.ClassType) }) }, Methods = new MethodApiView[] { }, NamedTypes = new NamedTypeApiView[] { }, Properties = new PropertyApiView[] { p }, TypeParameters = new TypeParameterApiView[] { } }; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(nt, list); Assert.Equal("<span class=\"keyword\">public</span> <span class=\"keyword\">class</span> <a href=\"#\" id=\"ImplementingClass\" class=\"class commentable\">ImplementingClass</a> : " + "<a href=\"#\" class=\"class\">BaseClass</a> {" + Environment.NewLine + " <span class=\"keyword\">protected</span> <span class=\"keyword\">string</span> <a id=\"\" class" + "=\"name commentable\">TestProperty</a> { <span class=\"keyword\">get</span>; <span class=\"keyword\">set</span>; }" + Environment.NewLine + "}", list.ToString()); }
public async Task OnGetAsync(string id) { Id = id; var assemblyModel = await assemblyRepository.ReadAssemblyContentAsync(id); var renderer = new HTMLRendererApiView(); AssemblyModel = renderer.Render(assemblyModel.Assembly).ToArray(); Comments = new Dictionary <string, List <CommentModel> >(); var assemblyComments = await commentRepository.FetchCommentsAsync(id); var comments = assemblyComments.Comments; foreach (var comment in comments) { if (!Comments.TryGetValue(comment.ElementId, out List <CommentModel> list)) { Comments[comment.ElementId] = new List <CommentModel>() { comment } } ; else { Comments[comment.ElementId].Add(comment); } } Username = User.GetGitHubLogin(); }
public void NamespaceTestEmptyImplementingHTMLRender() { var ns = new NamespaceApiView { Name = "TestNamespace", NamedTypes = new NamedTypeApiView[] { }, Namespaces = new NamespaceApiView[] { } }; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(ns, list); Assert.Equal("", list.ToString()); }
public void EventTestHTMLRender() { var e = new EventApiView { Accessibility = "public", Name = "TestEvent", Type = new TypeReferenceApiView(new TokenApiView[] { new TokenApiView() }) }; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(e, list); Assert.Equal("<span class=\"keyword\">public</span> <span class=\"keyword\">event</span> " + "<span class=\"keyword\"></span> <a id=\"\" class=\"name commentable\">TestEvent</a>;", list.ToString()); }
public void MethodTestAttributesHTMLRender() { var arg1 = new AttributeConstructArgApiView { Value = "Test" }; var arg2 = new AttributeConstructArgApiView { Value = "\"String\"" }; var a = new AttributeApiView { Type = new TypeReferenceApiView(new TokenApiView[] { new TokenApiView("TestAttribute", TypeReferenceApiView.TokenType.ClassType) }), ConstructorArgs = new AttributeConstructArgApiView[] { arg1, arg2 } }; var m = new MethodApiView { Name = "TestMethod", ReturnType = new TypeReferenceApiView(new TokenApiView[] { new TokenApiView("void", TypeReferenceApiView.TokenType.BuiltInType) }), Accessibility = "public", Id = "TestMethod", IsConstructor = false, IsInterfaceMethod = false, IsStatic = false, IsVirtual = false, IsSealed = false, IsOverride = false, IsAbstract = false, IsExtern = false, Attributes = new AttributeApiView[] { a }, Parameters = new ParameterApiView[] { }, TypeParameters = new TypeParameterApiView[] { } }; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(m, list); Assert.Equal("[<a href=\"#\" class=\"class\">TestAttribute</a>(<span class=\"value\">Test</span>, <span class=\"value\">\"String\"</span>)]" + Environment.NewLine + "<span class=\"keyword\">public</span> <span class=\"keyword\">void</span> <a id=\"TestMethod\" class=\"name commentable\">TestMethod</a>() { }", list.ToString()); }
public void FieldTestHTMLRender() { var f = new FieldApiView { Accessibility = "public", Type = new TypeReferenceApiView(new TokenApiView[] { new TokenApiView("string", TypeReferenceApiView.TokenType.BuiltInType) }), IsConstant = true, IsReadOnly = false, IsStatic = true, IsVolatile = false, Value = "constant string", Name = "publicString" }; f.Type.IsString = true; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(f, list); Assert.Equal("<span class=\"keyword\">public</span> <span class=\"keyword\">static</span> <span class=\"keyword\">const</span> <span class=\"keyword\">string</span>" + " <a id=\"\" class=\"name commentable\">publicString</a> = <span class=\"value\">\"constant string\"</span>;", list.ToString()); }
public void MethodTestConstructorHTMLRender() { var p = new ParameterApiView { Type = new TypeReferenceApiView(new TokenApiView[] { new TokenApiView("int", TypeReferenceApiView.TokenType.BuiltInType) }), Name = "num", HasExplicitDefaultValue = true, ExplicitDefaultValue = 2, Attributes = new string[] { } }; var m = new MethodApiView { Name = "TestClass", ReturnType = null, Accessibility = "public", Id = "TestClass", IsConstructor = true, IsInterfaceMethod = false, IsStatic = false, IsVirtual = false, IsSealed = false, IsOverride = false, IsAbstract = false, IsExtern = false, Attributes = new AttributeApiView[] { }, Parameters = new ParameterApiView[] { p }, TypeParameters = new TypeParameterApiView[] { } }; var renderer = new HTMLRendererApiView(); var list = new StringListApiView(); renderer.Render(m, list); Assert.Equal("<span class=\"keyword\">public</span> <a href=\"#\" id=\"TestClass\" class=\"class commentable\">TestClass</a>(<span class=\"keyword\">int</span> num" + " = <span class=\"value\">2</span>) { }", list.ToString()); }