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)); }
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>(); }
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); }
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); }