Exemplo n.º 1
0
        public SearchQueryPredicateBuilder(ISearchQueryValueProvider searchQueryValueProvider)
        {
            Assert.ArgumentNotNull(searchQueryValueProvider, "searchQueryValueProvider");

            SearchQueryValueProvider = searchQueryValueProvider;
            _predicateBuilderContext = new Stack <PredicateBuilderContext>();
        }
        public void Ctor_SearchQueryRootItemFuncIsNull_ThrowsException()
        {
            // Arrange
            ISearchQueryValueProvider valueProvider = null;

            // Act
            Action act = () => new SearchQueryPredicateBuilder <TestIndexableEntity>(valueProvider);

            // Assert
            act.ShouldThrow <ArgumentNullException>();
        }
        /// <summary>
        /// Creates a new <see cref="ISearchResultRepository{T}"/> instance using the specified builder configuration.
        /// </summary>
        /// <param name="searchQueryElementProvider">The specified element provider.</param>
        /// <param name="searchQueryValueProvider">The specified value provider.</param>
        /// <returns>A configured <see cref="ISearchResultRepository{T}"/> instance.</returns>
        public ISearchResultRepository <T> Create(ISearchQueryElementProvider searchQueryElementProvider,
                                                  ISearchQueryValueProvider searchQueryValueProvider)
        {
            Assert.ArgumentNotNull(searchQueryElementProvider, "searchQueryElementProvider");
            Assert.ArgumentNotNull(searchQueryValueProvider, "searchQueryValueProvider");

            var indexNameProvider = GetIndexNameProvider();
            var predicateBuilder  = GetSearchQueryPredicateBuilder(searchQueryValueProvider);

            return(new SearchResultRepository <T>(searchQueryElementProvider, indexNameProvider, predicateBuilder));
        }
Exemplo n.º 4
0
        public void Create_UsingDefaultSettings_ReturnsSearchQueryRepositoryUsingSitecoreMasterOrWebIndexNameProviderAndDefaultPredicateBuilder(
            ISearchQueryElementProvider elementProvider,
            ISearchQueryValueProvider valueProvider)
        {
            // Arrange
            var sut = new SearchResultRepositoryBuilder <TestIndexableEntity>();

            // Act
            var actual = sut.Create(elementProvider, valueProvider);

            // Assert
            actual.IndexNameProvider.Should().BeOfType <SitecoreMasterOrWebIndexNameProvider>();
            actual.SearchQueryPredicateBuilder.Should().BeOfType <SearchQueryPredicateBuilder <TestIndexableEntity> >();
        }
Exemplo n.º 5
0
        public void Create_UsingCustomPredicateBuilder_ReturnsSearchQueryRepositoryUsingCustomPredicateBuilder(
            ISearchQueryElementProvider elementProvider,
            ISearchQueryValueProvider valueProvider)
        {
            // Arrange
            var sut = new SearchResultRepositoryBuilder <TestIndexableEntity>();

            // Act
            var actual = sut
                         .WithPredicateBuilder <TestPredicateBuilder <TestIndexableEntity> >()
                         .Create(elementProvider, valueProvider);

            // Assert
            actual.SearchQueryPredicateBuilder.Should().BeOfType <TestPredicateBuilder <TestIndexableEntity> >();
        }
Exemplo n.º 6
0
 public TestPredicateBuilder(ISearchQueryValueProvider searchQueryValueProvider)
 {
     SearchQueryValueProvider = searchQueryValueProvider;
 }
        private ISearchQueryPredicateBuilder <T> GetSearchQueryPredicateBuilder(ISearchQueryValueProvider searchQueryValueProvider)
        {
            var instance = Activator.CreateInstance(_searchQueryPredicateBuilderType, searchQueryValueProvider);

            return((ISearchQueryPredicateBuilder <T>)instance);
        }