Пример #1
0
        public void LibraryExcludeTest()
        {
            var basePath             = Path.Combine(Environment.CurrentDirectory, @"..\..");
            var globalSourceXmlFiles = @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.X\mscorlib.xml";
            var newFileNames         = InheritDocUtil.Run(basePath: basePath, globalSourceXmlFiles: globalSourceXmlFiles, excludeTypes: "System.Object", overwriteExisting: false, logger: Logger);
            var fileName             = newFileNames.Where(x => Path.GetFileName(x).StartsWith("InheritDocTest.")).First();

            using (var streamReader = new StreamReader(fileName)) {
                var xDocument = XDocument.Load(streamReader);

                CheckForMethodComments(
                    xDocument,
                    "MyException",
                    "#ctor",
                    "summary",
                    "Initializes a new instance of the  class."
                    );

                CheckForMethodComments(
                    xDocument,
                    "ClassEA",
                    "#ctor",
                    "summary",
                    null
                    );

                CheckForMethodComments(
                    xDocument,
                    "ClassEB",
                    "#ctor",
                    "summary",
                    null
                    );
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            // Parse options
            var options = new Options();
            var isValid = CommandLine.Parser.Default.ParseArgumentsStrict(args, options);

            if (!isValid)
            {
                throw new Exception("Invalid command line");
            }

            InheritDocUtil.Run(options.BasePath, options.XmlDocFileNamePatterns, options.GlobalSourceXmlFiles, options.ExcludeTypes, overwriteExisting: options.OverwriteExisting, logger: Logger);
        }
Пример #3
0
        public static void Run(OptionPageGrid page)
        {
            var basePath             = GetSolutionPath();
            var xmlDocFileNames      = string.IsNullOrEmpty(page.XmlDocFileNames) ? GetProjectXmlDocFileNames() : page.XmlDocFileNames;
            var globalSourceXmlFiles = page.GlobalSourceXmlFiles;
            var excludeTypes         = page.ExcludeTypes;
            var buildOutputPane      = GetBuildOutputPane();

            buildOutputPane.Activate();
            InheritDocUtil.Run(basePath: basePath, xmlDocFileNamePatterns: xmlDocFileNames, globalSourceXmlFiles: globalSourceXmlFiles, excludeTypes: excludeTypes, overwriteExisting: page.OverwriteExisting, logger: (logLevel, message) => {
                if ((int)logLevel >= (int)page.LogLevel)
                {
                    buildOutputPane.OutputString($"InheritDoc.{logLevel}:{message}\r\n");
                }
            });
        }
Пример #4
0
        public void LibraryNoExcludeTest()
        {
            var basePath             = Path.Combine(Environment.CurrentDirectory, @"..\..");
            var globalSourceXmlFiles = @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.X\mscorlib.xml";
            var newFileNames         = InheritDocUtil.Run(basePath: basePath, globalSourceXmlFiles: globalSourceXmlFiles, overwriteExisting: false, logger: Logger);
            var fileName             = newFileNames.Where(x => Path.GetFileName(x).StartsWith("InheritDocTest.")).First();

            using (var streamReader = new StreamReader(fileName)) {
                var xDocument = XDocument.Load(streamReader);

                CheckForClassComments(
                    xDocument,
                    "MyException",
                    "summary",
                    new string[] { "Represents errors that occur during application execution.To browse the .NET Framework source code for this type, see the Reference Source." }
                    );

                CheckForMethodComments(
                    xDocument,
                    "MyException",
                    "#ctor",
                    "summary",
                    "Initializes a new instance of the  class."
                    );

                CheckForMethodComments(
                    xDocument,
                    "ClassEA",
                    "#ctor",
                    "summary",
                    "Initializes a new instance of the  class."
                    );

                CheckForMethodComments(
                    xDocument,
                    "ClassEB",
                    "#ctor",
                    "summary",
                    "Initializes a new instance of the  class."
                    );
            }
        }
Пример #5
0
        static void Main(string[] args)
        {
            // Parse options
            var parserResult = CommandLine.Parser.Default.ParseArguments <Options>(args);

            parserResult.WithNotParsed(errors =>
            {
                foreach (var error in errors)
                {
                    if (!error.StopsProcessing)
                    {
                        Console.WriteLine($"Invalid command line: {error.Tag}");
                    }
                }
            });

            parserResult.WithParsed(options =>
            {
                InheritDocUtil.Run(options.BasePath, options.XmlDocFileNamePatterns, options.GlobalSourceXmlFiles, options.ExcludeTypes, overwriteExisting: options.OverwriteExisting, logger: Logger);
            });
        }
Пример #6
0
        public void BasicTest()
        {
            var basePath     = Path.Combine(Environment.CurrentDirectory, @"..\..");
            var newFileNames = InheritDocUtil.Run(basePath: basePath, overwriteExisting: false, logger: Logger);
            var fileName     = newFileNames.Where(x => Path.GetFileName(x).StartsWith("InheritDocTest.")).First();

            using (var streamReader = new StreamReader(fileName)) {
                var xDocument = XDocument.Load(streamReader);

                // Check inheritance
                CheckForClassAComments(
                    xDocument,
                    "ClassA",
                    rootSummaryValue: "ClassA-Class-Summary",
                    rootRemarksValue: "ClassA-Class-Remarks",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    propertyValueValue: "ClassA-MyProperty-Value",
                    methodSummaryValue: "ClassA-MyMethod-Summary"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAA"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAB",
                    rootSummaryValue: "ClassA-Class-Summary",
                    rootRemarksValue: "ClassA-Class-Remarks",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    propertyValueValue: "ClassA-MyProperty-Value",
                    methodSummaryValue: "ClassA-MyMethod-Summary"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAC",
                    rootSummaryValue: "ClassA-Class-Summary",
                    rootRemarksValue: "ClassA-Class-Remarks",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    propertyValueValue: "ClassA-MyProperty-Value",
                    methodSummaryValue: "ClassA-MyMethod-Summary"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAD",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    propertyValueValue: "ClassA-MyProperty-Value",
                    methodSummaryValue: "ClassA-MyMethod-Summary"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAE",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    methodSummaryValue: "ClassA-MyMethod-Summary"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAF",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    propertyValueValue: "ClassA-MyProperty-Value",
                    methodSummaryValue: "ClassA-MyMethod-Summary"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAG",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    propertyValueValue: "ClassAG-MyProperty-Value"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAH",
                    rootSummaryValue: "ClassA-Class-Summary"
                    );
                CheckForClassAComments(
                    xDocument,
                    "ClassAAA",
                    rootSummaryValue: "ClassA-Class-Summary",
                    rootRemarksValue: "ClassA-Class-Remarks",
                    propertySummaryValue: "ClassA-MyProperty-Summary",
                    propertyValueValue: "ClassA-MyProperty-Value",
                    methodSummaryValue: "ClassA-MyMethod-Summary"
                    );

                // Test interfaces
                CheckForMethodComments(
                    xDocument,
                    "ClassBA",
                    "MethodA",
                    "summary",
                    "InterfaceA-MethodA-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBB",
                    "MethodB",
                    "summary",
                    "InterfaceB-MethodB-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBAB",
                    "MethodA",
                    "summary",
                    "InterfaceA-MethodA-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBAB",
                    "MethodB",
                    "summary",
                    "InterfaceB-MethodB-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBC",
                    "MethodB",
                    "summary",
                    "InterfaceB-MethodB-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBC",
                    "MethodC",
                    "summary",
                    "InterfaceC-MethodC-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBA",
                    "MethodA",
                    "summary",
                    "InterfaceA-MethodA-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBA",
                    "MethodA",
                    "summary",
                    "InterfaceA-MethodA-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassBA",
                    "MethodA",
                    "summary",
                    "InterfaceA-MethodA-Summary"
                    );

                // Test cref attribute
                CheckForMethodComments(
                    xDocument,
                    "ClassCB",
                    "MethodA(System.Int32)",
                    "summary",
                    "ClassCA-MethodA(int)-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassCB",
                    "MethodA(System.String)",
                    "summary",
                    "ClassCA-MethodA(string)-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassCB",
                    "MethodC",
                    "summary",
                    "ClassCA-MethodB-Summary"
                    );
                CheckForMethodComments(
                    xDocument,
                    "ClassCB",
                    "MethodD",
                    "summary",
                    "ClassCA-MethodB-Summary"
                    );

                CheckForClassComments(
                    xDocument,
                    "ClassDA",
                    "summary",
                    new string[] { "ClassDA-Summary(1)", "ClassDA-Summary(2)" }
                    );
                CheckForClassComments(
                    xDocument,
                    "ClassDB",
                    "summary",
                    new string[] { "ClassDA-Summary(1)", "ClassDA-Summary(2)" }
                    );
                CheckForClassComments(
                    xDocument,
                    "ClassDC",
                    "summary",
                    new string[] { "ClassDC-Summary" }
                    );
                CheckForClassComments(
                    xDocument,
                    "ClassDD",
                    "summary",
                    new string[] { "ClassDC-Summary" }
                    );

                CheckForMethodComments(
                    xDocument,
                    "ClassCB",
                    "MethodD",
                    "summary",
                    "ClassCA-MethodB-Summary"
                    );
            }
        }