public void AttributeDocumenterDeprecationTest()
        {
            var doctest    = typeof(AttributeDocumenterTestClass);
            var documenter = new AttributeDocumenter(doctest, RelevantBindings);

            Assert.AreEqual(string.Empty, documenter.TypeDeprecationMessage);
            Assert.AreEqual(string.Empty, documenter.MethodBaseDeprecationMessage(doctest.GetMethod("TestMethod1")));
            Assert.AreEqual(
                "[Deprecated: use TestMethod1 instead]",
                documenter.MethodBaseDeprecationMessage(doctest.GetMethod("TestMethod2"))
                );
            Assert.AreEqual(
                "[Deprecated]",
                documenter.MethodBaseDeprecationMessage(doctest.GetMethod("NullDocMethod"))
                );

            var obsoleteClass = typeof(ObsoleteClass);
            var documenter2   = new AttributeDocumenter(obsoleteClass, RelevantBindings);

            Assert.AreEqual("[Deprecated class: use DocTest instead]", documenter2.TypeDeprecationMessage);
            Assert.AreEqual(
                "[Deprecated: Overriding obsolete message]",
                documenter2.MethodBaseDeprecationMessage(obsoleteClass.GetMethod("Method1"))
                );
            Assert.AreEqual(string.Empty, documenter2.MethodBaseDeprecationMessage(obsoleteClass.GetMethod("Method2")));
        }
        public void AttributeDocumenterDocumentationTest()
        {
            var doctest    = typeof(AttributeDocumenterTestClass);
            var documenter = new AttributeDocumenter(doctest, RelevantBindings);

            Assert.AreEqual("Class documentation", documenter.ConstructorDocumentation(doctest.GetConstructors()[0]));
            Assert.AreEqual(
                "TestMethod1 Documentation",
                documenter.MethodBaseDocumentation(doctest.GetMethod("TestMethod1")));
            Assert.AreEqual(
                "Property1 Documentation",
                documenter.MethodBaseDocumentation(doctest.GetMethod("get_Property1")));
            Assert.IsTrue(
                string.IsNullOrEmpty(documenter.MethodBaseDocumentation(doctest.GetMethod("set_NoDocProperty")))
                );
            Assert.IsTrue(string.IsNullOrEmpty(documenter.MethodBaseDocumentation(doctest.GetMethod("NullDocMethod"))));
            // The only path we're not testing is if the DocumentationProperty doesn't contain a Message property,
            // which would be a mistake in the definition, so very unlikely in production. It would result in null, so no harm.
        }