Пример #1
0
        internal PageBase(ILinkProvider linkProvider, ApiReferenceConfiguration configuration, TModel model)
        {
            Model = model ?? throw new ArgumentNullException(nameof(model));

            m_LinkProvider  = linkProvider ?? throw new ArgumentNullException(nameof(linkProvider));
            m_Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
        }
Пример #2
0
        public PageFactory(IApiReferencePathProvider pathProvider, ApiReferenceConfiguration configuration, AssemblySetDocumentation assemblySet, ILogger logger)
        {
            m_Logger        = logger ?? throw new ArgumentNullException(nameof(logger));
            m_PathProvider  = pathProvider ?? throw new ArgumentNullException(nameof(pathProvider));
            m_Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
            m_Model         = assemblySet ?? throw new ArgumentNullException(nameof(assemblySet));

            LoadPages();
        }
Пример #3
0
        public void Execute_returns_false_if_AssemblyPaths_is_invalid(string assemblyPath)
        {
            // ARRANGE
            var configuration = new ApiReferenceConfiguration()
            {
                AssemblyPaths = new[] { assemblyPath },
                OutputPath    = "./some-output-path"
            };

            var sut = new ApiReferenceCommand(m_Logger, configuration);

            // ACT
            var success = sut.Execute();

            // ASSERT
            Assert.False(success);
        }
Пример #4
0
        public void Execute_returns_false_if_OutputPath_is_invalid(string outputPath)
        {
            // ARRANGE
            using var temporaryDirectory = new TemporaryDirectory();
            var assemblyPath = Path.Combine(temporaryDirectory, "myAssembly.dll");

            File.WriteAllText(assemblyPath, "");

            var configuration = new ApiReferenceConfiguration()
            {
                AssemblyPaths = new[] { assemblyPath },
                OutputPath    = outputPath
            };

            var sut = new ApiReferenceCommand(m_Logger, configuration);

            // ACT
            var success = sut.Execute();

            // ASSERT
            Assert.False(success);
        }
Пример #5
0
        public void Execute_generates_apireference_output()
        {
            // ARRANGE
            using var temporaryDirectory = new TemporaryDirectory();

            var assemblyPath         = Path.Combine(temporaryDirectory, $"myAssembly.dll");
            var xmlDocumentationPath = Path.ChangeExtension(assemblyPath, ".xml");
            var outputPath           = Path.Combine(temporaryDirectory, "output");

            CompileToFile(@"
                namespace MyNamespace
                {
                    public class Class1
                    {                   
                        public string Option1 { get; set; }
                    }
                }
            ", assemblyPath, xmlDocumentationPath);

            var configuration = new ApiReferenceConfiguration()
            {
                AssemblyPaths = new[] { assemblyPath },
                OutputPath    = outputPath
            };

            var sut = new ApiReferenceCommand(m_Logger, configuration);

            // ACT
            var success = sut.Execute();

            // ASSERT
            Assert.True(success);
            Assert.True(Directory.Exists(outputPath));
            Assert.True(File.Exists(Path.Combine(outputPath, @"MyNamespace\index.md")));
            Assert.True(File.Exists(Path.Combine(outputPath, @"MyNamespace\Class1\index.md")));
            Assert.True(File.Exists(Path.Combine(outputPath, @"MyNamespace\Class1\constructors\index.md")));
            Assert.True(File.Exists(Path.Combine(outputPath, @"MyNamespace\Class1\properties\Option1.md")));
        }
Пример #6
0
 internal TypePage(ILinkProvider linkProvider, ApiReferenceConfiguration configuration, TypeDocumentation model, ILogger logger)
     : base(linkProvider, configuration, model)
 {
     m_Logger = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Пример #7
0
 internal FieldPage(ILinkProvider linkProvider, ApiReferenceConfiguration configuration, FieldDocumentation model, ILogger logger)
     : base(linkProvider, configuration, model, logger)
 {
 }
Пример #8
0
 public ApiReferenceCommand(ILogger logger, ApiReferenceConfiguration configuration)
 {
     m_Logger        = logger ?? throw new ArgumentNullException(nameof(logger));
     m_Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
 }
Пример #9
0
 public PageFactory(IApiReferencePathProvider pathProvider, ApiReferenceConfiguration configuration, AssemblySetDocumentation assemblySet)
     : this(pathProvider, configuration, assemblySet, NullLogger.Instance)
 {
 }
Пример #10
0
 public ApiReferenceDefaultTemplate(ApiReferenceConfiguration configuration)
 {
     m_Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
 }
Пример #11
0
 internal MemberPage(ILinkProvider linkProvider, ApiReferenceConfiguration configuration, TModel model)
     : base(linkProvider, configuration, model)
 {
 }
Пример #12
0
 protected abstract TPage CreatePage(TModel model, ApiReferenceConfiguration configuration);
Пример #13
0
        public static ITemplate <AssemblySetDocumentation> GetTemplate(ILogger logger, ApiReferenceConfiguration configuration)
        {
            switch (configuration.Template.Name)
            {
            case ApiReferenceConfiguration.TemplateName.Default:
                return(new ApiReferenceDefaultTemplate(configuration));

            default:
                throw new InvalidTemplateConfigurationException($"Unknown template '{configuration.Template.Name}'");
            }
        }
Пример #14
0
 internal OperatorPage(ILinkProvider linkProvider, ApiReferenceConfiguration configuration, OperatorDocumentation model, ILogger logger)
     : base(linkProvider, configuration, model, logger)
 {
 }
Пример #15
0
 internal OverloadableMemberPage(ILinkProvider linkProvider, ApiReferenceConfiguration configuration, TModel model, ILogger logger)
     : base(linkProvider, configuration, model)
 {
     m_Logger   = logger ?? throw new ArgumentNullException(nameof(logger));
     m_Headings = new Lazy <IReadOnlyDictionary <MemberId, MdHeading> >(LoadHeadings);
 }
Пример #16
0
 protected override EventPage CreatePage(EventDocumentation model, ApiReferenceConfiguration configuration)
 {
     return(new EventPage(NullLinkProvider.Instance, configuration, model, NullLogger.Instance));
 }
Пример #17
0
 internal SimpleMemberPage(ILinkProvider linkProvider, ApiReferenceConfiguration configuration, TModel model, ILogger logger)
     : base(linkProvider, configuration, model)
 {
     m_Logger = logger ?? throw new ArgumentNullException(nameof(logger));
 }