示例#1
0
        private ISearchResultRepository <T> CreateSearchResultRepository <T>()
            where T : IndexableEntity, new()
        {
            var elementProvider = new SitecoreSearchQueryElementProvider(() => RenderingContext.Current.Rendering.Item);
            var valueProvider   = new NameValuePairSearchQueryValueProvider(() => Request.QueryString);

            var builder = new SearchResultRepositoryBuilder <T>()
                          .WithIndexNameProvider <SitecoreMasterOrWebIndexNameProvider>();

            return(builder.Create(elementProvider, valueProvider));
        }
示例#2
0
        public void GetValueForSearchQueryRule_SearchQueryRuleIsNull_ThrowsException()
        {
            // Arrange
            SearchQueryRule <TestIndexableEntity> searchQueryRule = null;
            var parameterNameValuePairs = new NameValueCollection();
            var sut = new NameValuePairSearchQueryValueProvider(() => parameterNameValuePairs);

            // Act
            Action act = () => sut.GetValueForSearchQueryRule(searchQueryRule);

            // Assert
            act.ShouldThrow <ArgumentNullException>();
        }
示例#3
0
        public void GetValueForSearchQueryRule_DynamicValueProvidingParameterNotSetForSearchQueryRule_ReturnsDefaultValue(string defaultValue)
        {
            // Arrange
            var propertySelector        = ExpressionUtils.GetPropertySelector <TestIndexableEntity, object>(TestIndexableEntityPropertyName);
            var searchQueryRule         = new SearchQueryRule <TestIndexableEntity>(propertySelector, ComparisonOperator.Equal, defaultValue: defaultValue);
            var parameterNameValuePairs = new NameValueCollection();
            var sut = new NameValuePairSearchQueryValueProvider(() => parameterNameValuePairs);

            // Act
            var actual = sut.GetValueForSearchQueryRule(searchQueryRule);

            // Assert
            actual.ShouldBeEquivalentTo(defaultValue);
        }
示例#4
0
        public void GetValueForSearchQueryRule_SingleDynamicValueProvidedByQueryStringParameter_ReturnsSingleValue()
        {
            // Arrange
            var propertySelector        = ExpressionUtils.GetPropertySelector <TestIndexableEntity, object>(TestIndexableEntityPropertyName);
            var searchQueryRule         = new SearchQueryRule <TestIndexableEntity>(propertySelector, ComparisonOperator.Equal, ParameterName);
            var parameterValue          = "someValue";
            var parameterNameValuePairs = new NameValueCollection {
                { ParameterName, parameterValue }
            };
            var sut = new NameValuePairSearchQueryValueProvider(() => parameterNameValuePairs);

            // Act
            var actual = sut.GetValueForSearchQueryRule(searchQueryRule);

            // Assert
            actual.ShouldBeEquivalentTo(parameterValue);
        }