public static ContentIndexPopulator GetContentIndexRebuilder(PropertyEditorCollection propertyEditors, IContentService contentService, ISqlContext sqlContext, bool publishedValuesOnly) { var contentValueSetBuilder = GetContentValueSetBuilder(propertyEditors, publishedValuesOnly); var contentIndexDataSource = new ContentIndexPopulator(true, null, contentService, sqlContext, contentValueSetBuilder); return(contentIndexDataSource); }
public ContentIndexPopulator GetContentIndexRebuilder(IContentService contentService, bool publishedValuesOnly, IUmbracoDatabaseFactory umbracoDatabaseFactory) { var contentValueSetBuilder = GetContentValueSetBuilder(publishedValuesOnly); var contentIndexDataSource = new ContentIndexPopulator( _loggerFactory.CreateLogger <ContentIndexPopulator>(), publishedValuesOnly, null, contentService, umbracoDatabaseFactory, contentValueSetBuilder); return(contentIndexDataSource); }
/// <summary> /// Used to create and manage a testable index /// </summary> /// <param name="publishedValuesOnly"></param> /// <param name="index"></param> /// <param name="contentRebuilder"></param> /// <param name="contentValueSetBuilder"></param> /// <param name="parentId"></param> /// <returns></returns> protected IDisposable GetSynchronousContentIndex( bool publishedValuesOnly, out UmbracoContentIndex index, out ContentIndexPopulator contentRebuilder, out ContentValueSetBuilder contentValueSetBuilder, int?parentId = null, IContentService contentService = null) { contentValueSetBuilder = IndexInitializer.GetContentValueSetBuilder(publishedValuesOnly); ISqlContext sqlContext = Mock.Of <ISqlContext>(x => x.Query <IContent>() == Mock.Of <IQuery <IContent> >()); IUmbracoDatabaseFactory dbFactory = Mock.Of <IUmbracoDatabaseFactory>(x => x.SqlContext == sqlContext); if (contentService == null) { contentService = IndexInitializer.GetMockContentService(); } contentRebuilder = IndexInitializer.GetContentIndexRebuilder(contentService, publishedValuesOnly, dbFactory); var luceneDir = new RandomIdRAMDirectory(); ContentValueSetValidator validator; // if only published values then we'll change the validator for tests to // ensure we don't support protected nodes and that we // mock the public access service for the special protected node. if (publishedValuesOnly) { var publicAccessServiceMock = new Mock <IPublicAccessService>(); publicAccessServiceMock.Setup(x => x.IsProtected(It.IsAny <string>())) .Returns((string path) => { if (path.EndsWith("," + ExamineDemoDataContentService.ProtectedNode)) { return(Attempt <PublicAccessEntry> .Succeed()); } return(Attempt <PublicAccessEntry> .Fail()); }); var scopeProviderMock = new Mock <IScopeProvider>(); scopeProviderMock.Setup(x => x.CreateScope( It.IsAny <IsolationLevel>(), It.IsAny <RepositoryCacheMode>(), It.IsAny <IEventDispatcher>(), It.IsAny <IScopedNotificationPublisher>(), It.IsAny <bool?>(), It.IsAny <bool>(), It.IsAny <bool>())) .Returns(Mock.Of <IScope>); validator = new ContentValueSetValidator( publishedValuesOnly, false, publicAccessServiceMock.Object, scopeProviderMock.Object, parentId); } else { validator = new ContentValueSetValidator(publishedValuesOnly, parentId); } index = IndexInitializer.GetUmbracoIndexer( HostingEnvironment, RunningRuntimeState, luceneDir, validator: validator); IDisposable syncMode = index.WithThreadingMode(IndexThreadingMode.Synchronous); return(new DisposableWrapper(syncMode, index, luceneDir)); }