public void TestSplitString()
        {
            List <Document> documents = new List <Document>();

            documents.Add(new Document(Shared.DocumentType.Class, "Test", "Test", "ClassName", "T:Test.ClassName"));
            documents.Add(new Document(Shared.DocumentType.Class, "Test", "Test", "AdvancedSearchOptions", "T:Test.AdvancedSearchOptions"));

            DocumentPostProcess postProcess = new DocumentPostProcess(documents);

            Assert.IsNotNull(postProcess);

            Document searchDoc = new Document(Shared.DocumentType.Custom, "Custom Type");

            searchDoc.ClassName = searchDoc.FullMemberName;
            searchDoc.Returns   = "Dictionary&lt;string, AdvancedSearchOptions&gt;";
            //searchDoc.LongDescription = "Test <see cref=\"T:Test.ClassName\" /> class";

            Assert.IsNotNull(searchDoc);

            PostProcessResults postProcessResults = postProcess.Process(searchDoc);

            Assert.IsNotNull(postProcessResults);

            Assert.AreEqual(1, postProcessResults.DocumentsProcessed);
            Assert.AreEqual(searchDoc.Returns, "Dictionary&lt;string, <a href=\"/docs/Document/Test/AdvancedSearchOptions/\">AdvancedSearchOptions</a>&gt;");
        }
        public void ValidatePostProcessResultsProcessSingleDocumentParaTag()
        {
            List <Document> documents = new List <Document>();

            documents.Add(new Document(Shared.DocumentType.Class, "Test", "Test", "ClassName", "T:Test.ClassName"));

            DocumentPostProcess postProcess = new DocumentPostProcess(documents);

            Assert.IsNotNull(postProcess);

            Document searchDoc = new Document(Shared.DocumentType.Custom, "Custom Type");

            searchDoc.LongDescription = "Test <para>This will be a seperate paragraph</para> class";

            Assert.IsNotNull(searchDoc);

            PostProcessResults postProcessResults = postProcess.Process(searchDoc);

            Assert.IsNotNull(postProcessResults);

            Assert.AreEqual(1, postProcessResults.DocumentsProcessed);
            Assert.AreEqual(1, postProcessResults.GetCountValue(Constants.CountValueParaOpen));
            Assert.AreEqual(1, postProcessResults.GetCountValue(Constants.CountValueParaClose));
            Assert.AreEqual("Test <p>This will be a seperate paragraph</p> class", searchDoc.LongDescription);
        }
        public void ValidatePostProcessResultsProcessSingleDocumentSeeAlsoTagInvalid()
        {
            List <Document> documents = new List <Document>();

            documents.Add(new Document(Shared.DocumentType.Class, "Test", "Test", "ClassName", "T:Test.ClassName"));

            DocumentPostProcess postProcess = new DocumentPostProcess(documents);

            Assert.IsNotNull(postProcess);

            Document searchDoc = new Document(Shared.DocumentType.Custom, "Custom Type");

            searchDoc.ClassName       = searchDoc.FullMemberName;
            searchDoc.LongDescription = "Test <seealso cref=\"T:Test.ClassName /> class";

            Assert.IsNotNull(searchDoc);

            PostProcessResults postProcessResults = postProcess.Process(searchDoc);

            Assert.IsNotNull(postProcessResults);

            Assert.AreEqual(1, postProcessResults.DocumentsProcessed);
            Assert.AreEqual(1, postProcessResults.GetCountValue(Constants.CountValueSeeAlso));
            Assert.AreEqual(1, postProcessResults.GetCountValue(Constants.CountValueSeeAlsoNotFound));
            Assert.AreEqual(0, searchDoc.SeeAlso.Count);
        }
        public void ValidatePostProcessResultsProcessSingleDocumentSeeTag()
        {
            List <Document> documents = new List <Document>();

            documents.Add(new Document(Shared.DocumentType.Class, "Test", "Test", "ClassName", "T:Test.ClassName"));

            DocumentPostProcess postProcess = new DocumentPostProcess(documents);

            Assert.IsNotNull(postProcess);

            Document searchDoc = new Document(Shared.DocumentType.Custom, "Custom Type");

            searchDoc.ClassName       = searchDoc.FullMemberName;
            searchDoc.LongDescription = "Test <see cref=\"T:Test.ClassName\" /> class";

            Assert.IsNotNull(searchDoc);

            PostProcessResults postProcessResults = postProcess.Process(searchDoc);

            Assert.IsNotNull(postProcessResults);

            Assert.AreEqual(1, postProcessResults.DocumentsProcessed);
            Assert.AreEqual(1, postProcessResults.GetCountValue(Constants.CountValueSee));
            Assert.AreEqual("Test <a href=\"/docs/Document/Test/ClassName/\">ClassName</a> class", searchDoc.LongDescription);
        }
        public void ValidatePostProcessResults()
        {
            DocumentPostProcess postProcess = new DocumentPostProcess(GetDocuments());

            Assert.IsNotNull(postProcess);

            Document searchDoc = GetDocuments()
                                 .Where(d => d.LongDescription.Contains("<see cref=") && d.AssemblyName == "SearchPlugin")
                                 .FirstOrDefault();

            Assert.IsNotNull(searchDoc);

            PostProcessResults postProcessResults = postProcess.Process(searchDoc);

            Assert.IsNotNull(postProcessResults);
        }
        public void ValidatePostProcessResultsProcessSingleDocument()
        {
            List <Document> documents = new List <Document>();

            documents.Add(new Document(Shared.DocumentType.Class, "Test", "Test", "ClassName", "T:Test.ClassName"));

            DocumentPostProcess postProcess = new DocumentPostProcess(documents);

            Assert.IsNotNull(postProcess);

            Document searchDoc = new Document(Shared.DocumentType.Custom, "Custom Type");

            searchDoc.LongDescription = "Test <see cref=\"T:Test.ClassName\" /> class";

            Assert.IsNotNull(searchDoc);

            PostProcessResults postProcessResults = postProcess.Process(searchDoc);

            Assert.IsNotNull(postProcessResults);

            Assert.AreEqual(1, postProcessResults.DocumentsProcessed);
        }