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)); }
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> >(); }
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> >(); }
public TestPredicateBuilder(ISearchQueryValueProvider searchQueryValueProvider) { SearchQueryValueProvider = searchQueryValueProvider; }
private ISearchQueryPredicateBuilder <T> GetSearchQueryPredicateBuilder(ISearchQueryValueProvider searchQueryValueProvider) { var instance = Activator.CreateInstance(_searchQueryPredicateBuilderType, searchQueryValueProvider); return((ISearchQueryPredicateBuilder <T>)instance); }