示例#1
0
        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());
        }
示例#2
0
        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>&lt;" +
                         "<a href=\"#T\" class=\"type\">T</a>&gt; {" + Environment.NewLine + "}", list.ToString());
        }
示例#3
0
        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();
        }
示例#5
0
        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());
        }
示例#6
0
        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());
        }
示例#7
0
        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());
        }
示例#8
0
        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());
        }
示例#9
0
        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());
        }