public void ExtractTextShouldReturnExpectedValue()
        {
            var analyzer = new DefaultAnalyzer();
            var entity   = new Product();
            var result   = analyzer.AnalyzeEntity(entity).ToArray();

            string[] expected = new string[] { };
            Assert.Equal(expected, result);
        }
        public void ExtractTextShouldExcludeNotSearchable()
        {
            var analyzer = new DefaultAnalyzer();
            var entity   = new Product
            {
                Title       = "TestTitle",
                Description = "TestDescription"
            };
            var result = analyzer.AnalyzeEntity(entity).ToArray();

            string[] expected = new string[] { "testdescription" };
            Assert.Equal(expected, result);
        }
        public void ExtractTextShouldIncludeSearchable()
        {
            var analyzer = new DefaultAnalyzer();
            var entity   = new Product
            {
                Price = 10,
                Stock = 5,
            };
            var result = analyzer.AnalyzeEntity(entity).ToArray();

            string[] expected = new string[] { "5" };
            Assert.Equal(expected, result);
        }
        public void ExtractTextShouldIncludePrimitivesWithSearchableInNestedObjects()
        {
            var analyzer = new DefaultAnalyzer();
            var entity   = new Product
            {
                Stock          = 3,
                RelatedProduct = new Product
                {
                    Stock = 4
                }
            };
            var result = analyzer.AnalyzeEntity(entity).ToArray();

            string[] expected = new string[] { "3", "4" };
            Assert.Equal(expected, result);
        }
        public void ExtractTextShouldIncludeStringsInNestedObjects()
        {
            var analyzer = new DefaultAnalyzer();
            var entity   = new Product
            {
                Description     = "Test1",
                SimilarProducts = new[]
                {
                    new Product
                    {
                        Description = "Test2"
                    }
                }
            };
            var result = analyzer.AnalyzeEntity(entity).ToArray();

            string[] expected = new string[] { "test1", "test2" };
            Assert.Equal(expected, result);
        }
        public void ExtractTextShouldIncludePrimitivesWithSearchable()
        {
            var analyzer = new DefaultAnalyzer();
            var entity   = new Product2
            {
                Test1  = 1,
                Test1a = 10,
                Test2  = 2,
                Test2a = 20,
                Test3  = 3,
                Test3a = 30,
                Test4  = 4,
                Test4a = 40,
                Test5  = 5,
                Test5a = 50,
                Test6  = true,
                Test6a = false
            };
            var result = analyzer.AnalyzeEntity(entity).ToArray();

            string[] expected = new string[] { "1", "10", "2", "20", "3", "30", "4", "40", "5", "50", "true", "false" };
            Assert.Equal(expected, result);
        }
Example #7
0
        public void TestIndex()
        {
            string utf8Test = @"
                いろはにほへど ちりぬるを
                わがよたれぞ つねならむ
                うゐのおくやま けふこえて
                あさきゆめみじ ゑひもせず (4)
                ";

            var guid = Guid.NewGuid();

            using (var tixS = new MemoryStream())
            using (var tdtS = new MemoryStream())
            using (var dixS = new MemoryStream())
            using (var ddtS = new MemoryStream())
            {
                using (var writer = new IndexWriter(tixS, tdtS, dixS, ddtS))
                {
                    var document = new bsharptree.example.simpleindex.Document(guid, new MemoryStream(Encoding.UTF8.GetBytes(utf8Test)));
                    writer.AddDocument(document, new DefaultAnalyzer());
                    writer.TermStorage.Index.Commit();
                }

                //tixS.Flush();
                //tdtS.Flush();
                //dixS.Flush();
                //ddtS.Flush();

                // reset
                tixS.Seek(0, SeekOrigin.Begin);
                tdtS.Seek(0, SeekOrigin.Begin);
                dixS.Seek(0, SeekOrigin.Begin);
                ddtS.Seek(0, SeekOrigin.Begin);

                using (var termStorage = new TermStorage(tixS, tdtS))
                {
                    var analyzer = new DefaultAnalyzer();
                    var stream = new MemoryStream(Encoding.UTF8.GetBytes(utf8Test));

                    foreach (var tp in analyzer.GetTermPositions(stream))
                    {
                        var positions = termStorage.Get(tp.Term);
                        var found = false;
                        foreach (var pos in positions.Value)
                        {
                            Assert.IsTrue(pos.Document.Equals(guid));
                            if (pos.Span.Start == tp.Span.Start && pos.Span.End == tp.Span.End)
                                found = true;
                        }
                        Assert.IsTrue(found);
                    }
                }

                //var foo = new IndexQueryProvider();
                //var docStorage = new DocumentStorage(dixS, ddtS);
                //var results = from term in foo.Terms
                //              from location in term.Value
                //              where term.Key == "foo" || term.Key == "bar"
                //              select location;

                //foreach (var result in results.Distinct())
                //{
                //    Console.Out.WriteLine(result.Document);

                //    var document = docStorage.Get(result.Document);
                //    var context = docStorage.GetContext(result);
                //    Console.Out.WriteLine(context);
                //    Console.Out.WriteLine();
                //}

            }
        }
Example #8
0
 void _programFileProvider_ImportModuleLocationChanged(object sender, ImportModuleLocationChangedEventArgs e)
 {
     DefaultAnalyzer.UpdateImportedProject(e.ImportModule, e.NewLocation);
 }
Example #9
0
 void _programFileProvider_IncludeFileLocationChanged(object sender, IncludeFileLocationChangedEventArgs e)
 {
     DefaultAnalyzer.UpdateIncludedFile(e.NewLocation);
 }