public void Index_Delete_Index_Item_Ensure_Heirarchy_Removed() { var rebuilder = IndexInitializer.GetContentIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockContentService(), ScopeProvider.SqlContext, false); using (var luceneDir = new RandomIdRamDirectory()) using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir)) using (indexer.ProcessNonAsync()) { var searcher = indexer.GetSearcher(); //create the whole thing rebuilder.Populate(indexer); //now delete a node that has children indexer.DeleteFromIndex(1140.ToString()); //this node had children: 1141 & 1142, let's ensure they are also removed var results = searcher.CreateQuery().Id(1141).Execute(); Assert.AreEqual(0, results.Count()); results = searcher.CreateQuery().Id(1142).Execute(); Assert.AreEqual(0, results.Count()); } }
public void Index_Reindex_Content() { var rebuilder = IndexInitializer.GetContentIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockContentService(), ScopeProvider.SqlContext, false); using (var luceneDir = new RandomIdRamDirectory()) using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, validator: new ContentValueSetValidator(false))) using (indexer.ProcessNonAsync()) { var searcher = indexer.GetSearcher(); //create the whole thing rebuilder.Populate(indexer); var result = searcher.CreateQuery().Field(LuceneIndex.CategoryFieldName, IndexTypes.Content).Execute(); Assert.AreEqual(21, result.TotalItemCount); //delete all content foreach (var r in result) { indexer.DeleteFromIndex(r.Id); } //ensure it's all gone result = searcher.CreateQuery().Field(LuceneIndex.CategoryFieldName, IndexTypes.Content).Execute(); Assert.AreEqual(0, result.TotalItemCount); //call our indexing methods rebuilder.Populate(indexer); result = searcher.CreateQuery().Field(LuceneIndex.CategoryFieldName, IndexTypes.Content).Execute(); Assert.AreEqual(21, result.TotalItemCount); } }
public void Index_Protected_Content_Not_Indexed() { var rebuilder = IndexInitializer.GetContentIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockContentService(), ScopeProvider.SqlContext, false); using (var luceneDir = new RandomIdRamDirectory()) using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir)) using (indexer.ProcessNonAsync()) using (var searcher = ((LuceneSearcher)indexer.GetSearcher()).GetLuceneSearcher()) { //create the whole thing rebuilder.Populate(indexer); var protectedQuery = new BooleanQuery(); protectedQuery.Add( new BooleanClause( new TermQuery(new Term(LuceneIndex.CategoryFieldName, IndexTypes.Content)), Occur.MUST)); protectedQuery.Add( new BooleanClause( new TermQuery(new Term(LuceneIndex.ItemIdFieldName, ExamineDemoDataContentService.ProtectedNode.ToString())), Occur.MUST)); var collector = TopScoreDocCollector.Create(100, true); searcher.Search(protectedQuery, collector); Assert.AreEqual(0, collector.TotalHits, "Protected node should not be indexed"); } }
public void Rebuild_Index() { var contentRebuilder = IndexInitializer.GetContentIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockContentService(), ScopeProvider.SqlContext, false); var mediaRebuilder = IndexInitializer.GetMediaIndexRebuilder(Factory.GetInstance <PropertyEditorCollection>(), IndexInitializer.GetMockMediaService()); using (var luceneDir = new RandomIdRamDirectory()) using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir, validator: new ContentValueSetValidator(false))) using (indexer.ProcessNonAsync()) { var searcher = indexer.GetSearcher(); //create the whole thing contentRebuilder.Populate(indexer); mediaRebuilder.Populate(indexer); var result = searcher.CreateQuery().All().Execute(); Assert.AreEqual(29, result.TotalItemCount); } }
public void Test_Sort_Order_Sorting() { long totalRecs; var demoData = new ExamineDemoDataContentService(TestFiles.umbraco_sort); var allRecs = demoData.GetLatestContentByXPath("//*[@isDoc]") .Root .Elements() .Select(x => Mock.Of <IContent>( m => m.Id == (int)x.Attribute("id") && m.ParentId == (int)x.Attribute("parentID") && m.Level == (int)x.Attribute("level") && m.CreatorId == 0 && m.SortOrder == (int)x.Attribute("sortOrder") && m.CreateDate == (DateTime)x.Attribute("createDate") && m.UpdateDate == (DateTime)x.Attribute("updateDate") && m.Name == (string)x.Attribute("nodeName") && m.GetCultureName(It.IsAny <string>()) == (string)x.Attribute("nodeName") && m.Path == (string)x.Attribute("path") && m.Properties == new PropertyCollection() && m.Published == true && m.ContentType == Mock.Of <ISimpleContentType>(mt => mt.Icon == "test" && mt.Alias == x.Name.LocalName && mt.Id == (int)x.Attribute("nodeType")))) .ToArray(); var contentService = Mock.Of <IContentService>( x => x.GetPagedDescendants( It.IsAny <int>(), It.IsAny <long>(), It.IsAny <int>(), out totalRecs, It.IsAny <IQuery <IContent> >(), It.IsAny <Ordering>()) == allRecs); var propertyEditors = Factory.GetInstance <PropertyEditorCollection>(); var rebuilder = IndexInitializer.GetContentIndexRebuilder(propertyEditors, contentService, ScopeProvider.SqlContext, true); using (var luceneDir = new RandomIdRamDirectory()) using (var indexer = IndexInitializer.GetUmbracoIndexer(ProfilingLogger, luceneDir)) using (indexer.ProcessNonAsync()) { indexer.CreateIndex(); rebuilder.Populate(indexer); var searcher = indexer.GetSearcher(); var numberSortedCriteria = searcher.CreateQuery() .ParentId(1148) .OrderBy(new SortableField("sortOrder", SortType.Int)); var numberSortedResult = numberSortedCriteria.Execute(); var stringSortedCriteria = searcher.CreateQuery() .ParentId(1148) .OrderBy(new SortableField("sortOrder"));//will default to string var stringSortedResult = stringSortedCriteria.Execute(); Assert.AreEqual(12, numberSortedResult.TotalItemCount); Assert.AreEqual(12, stringSortedResult.TotalItemCount); Assert.IsTrue(IsSortedByNumber(numberSortedResult)); Assert.IsFalse(IsSortedByNumber(stringSortedResult)); } }