Exemple #1
0
        private string GetHtmlCore(string symbol, string usageStats = null)
        {
            if (symbol == null || symbol.Length < 3)
            {
                return(Markup.Note("Enter at least 3 characters."));
            }

            if (symbol.Length > 260)
            {
                return(Markup.Note(string.Format(
                                       "Query string is too long (maximum is {0} characters, input is {1} characters)",
                                       MaxInputLength,
                                       symbol.Length)));
            }

            using (Disposable.Timing("Get symbols"))
            {
                Stopwatch sw = Stopwatch.StartNew();

                var index = _provider.GetRequiredService <Index>();
                var query = index.Get(symbol);

                var result = new ResultsHtmlGenerator(query).Generate(sw, index, usageStats);
                return(result);
            }
        }
        public void EndToEnd(string queryString, string expectedHtml)
        {
            var testData = new List <DeclaredSymbolInfo>
            {
                new DeclaredSymbolInfo()
                {
                    Name        = "Console",
                    Description = "System.Console",
                    // T:System.Console, f907d79481da6ba4
                    ID = 11847803494810978297UL
                }
            };

            using (var index = new Index())
            {
                var huffman = Huffman.Create(testData.Select(i => i.Description));
                index.indexFinishedPopulating = true;
                index.huffman = huffman;
                index.symbols = testData.Select(dsi => new IndexEntry(dsi)).ToList();
                index.PopulateSymbolsById();
                var query      = index.Get(queryString);
                var actualHtml = new ResultsHtmlGenerator(query).Generate(index: index);
                Assert.AreEqual(expectedHtml, actualHtml);
            }
        }