public void Build_WithSearchText_ReturnsQueryWithExpectedSearchText(string searchText, string expectedResult) { var builder = new AzureSearchQueryBuilder(searchText); var result = builder.Build(); result.SearchText.Should().Be(expectedResult); }
public void Build_WithSearchMode_ReturnsQueryWithExpectedSearchMode(SearchMode?searchMode) { var builder = new AzureSearchQueryBuilder("TestSearchText") .WithSearchMode(searchMode); var result = builder.Build(); result.Options.SearchMode.Should().Be(searchMode); }
public void Build_WithSkip_ReturnsQueryWithExpectedSkip(int?skip) { var builder = new AzureSearchQueryBuilder("TestSearchText") .WithSkip(skip); var result = builder.Build(); result.Options.Skip.Should().Be(skip); }
public void Build_WithInvludeTotalCount_ReturnsQueryWithExpectedTotalCount(bool?includeTotalCount) { var builder = new AzureSearchQueryBuilder("TestSearchText") .WithIncludeTotalCount(includeTotalCount); var result = builder.Build(); result.Options.IncludeTotalCount.Should().Be(includeTotalCount); }
public void Build_WithScoringProfile_ReturnsQueryWithExpectedScoringProfile(string scoringProfile) { var builder = new AzureSearchQueryBuilder("TestSearchText") .WithScoringProfile(scoringProfile); var result = builder.Build(); result.Options.ScoringProfile.Should().Be(scoringProfile); }
public void Build_WithSize_ReturnsQueryWithExpectedSize(int?size) { var builder = new AzureSearchQueryBuilder("TestSearchText") .WithSize(size); var result = builder.Build(); result.Options.Size.Should().Be(size); }
public void Build_WithDelimiter_ReturnsQueryWithExpectedFilter() { var builder = new AzureSearchQueryBuilder("TestSearchText") .WithSearchInFilter("TestVariable1", new[] { "TestValue1", "TestValue2", "TestValue3" }, ','); var result = builder.Build(); result.Options.Filter.Should().Be("search.in(TestVariable1, 'TestValue1,TestValue2,TestValue3', ',')"); }
public void Build_WithSingleSearchInFilterAndMultipleValues_ReturnsQueryWithExpectedFilter() { var builder = new AzureSearchQueryBuilder("TestSearchText") .WithSearchInFilter("TestVariable1", new[] { "TestValue1", "TestValue2", "TestValue3" }); var result = builder.Build(); result.Options.Filter.Should().Be("search.in(TestVariable1, 'TestValue1|TestValue2|TestValue3', '|')"); }
public (string SearchText, SearchOptions Options) GenerateSearchQuery() { var builder = new AzureSearchQueryBuilder(LearnAimRef) .WithSearchMode(SearchMode.All) .WithSearchFields(nameof(Lars.LearnAimRef)) .WithSize(1); if (CertificationEndDateFilter.HasValue) { builder.WithFilters($"({nameof(Lars.CertificationEndDate)} ge {CertificationEndDateFilter.Value:O} or {nameof(Lars.CertificationEndDate)} eq null)"); } return(builder.Build()); }
private static AzureSearchQuery CreateSearchQuery(EPiServer.Shell.Search.Query query, CultureInfo currentCulture) { var queryBuilder = new AzureSearchQueryBuilder() .Top(query.MaxResults) .SearchTerm(query.SearchQuery); if (query.FilterOnCulture) { queryBuilder.Filter(AzureSearchQueryFilter.Equals(nameof(ContentDocument.ContentLanguage), currentCulture.Name)); } return(queryBuilder.Build()); }
public void Build_ReturnsExpectedQuery() { var searchFields = new[] { "TestSearchField1", "TestSearchField2", "TestSearchField3" }; var facets = new[] { "TestFacet1", "TestFacet2", "TestFacet3" }; var orderBy = new[] { "TestOrderBy1", "TestOrderBy2", "TestOrderBy3" }; var builder = new AzureSearchQueryBuilder("TestSearchText") .WithSearchMode(SearchMode.All) .WithSearchFields(searchFields) .WithFacets(facets) .WithSearchInFilter("TestVariable1", new[] { "TestValue1" }) .WithSearchInFilter("TestVariable2", new[] { "TestValue2", "TestValue3" }) .WithSearchInFilter("TestVariable3", new[] { "TestValue4", "TestValue5", "TestValue6" }, ',') .WithOrderBy(orderBy) .WithScoringProfile("TestScoringProfile") .WithSize(12) .WithSkip(34) .WithIncludeTotalCount(); var result = builder.Build(); result.SearchText.Should().Be("TestSearchText"); result.Options.SearchMode.Should().Be(SearchMode.All); result.Options.SearchFields.Should().Equal(searchFields); result.Options.Facets.Should().Equal(facets); result.Options.Filter.Should().Be("search.in(TestVariable1, 'TestValue1', '|') and search.in(TestVariable2, 'TestValue2|TestValue3', '|') and search.in(TestVariable3, 'TestValue4,TestValue5,TestValue6', ',')"); result.Options.OrderBy.Should().Equal(orderBy); result.Options.ScoringProfile.Should().Be("TestScoringProfile"); result.Options.Size.Should().Be(12); result.Options.Skip.Should().Be(34); result.Options.IncludeTotalCount.Should().BeTrue(); }
public void Build_WithSearchFields_ReturnsQueryWithExpectedSearchFields() { var searchFields = new[] { "TestSearchField1", "TestSearchField2", "TestSearchField3" }; var builder = new AzureSearchQueryBuilder("TestSearchText") .WithSearchFields(searchFields); var result = builder.Build(); result.Options.SearchFields.Should().Equal(searchFields); }
public void Build_WithOrderBy_ReturnsQueryWithExpectedOrderBy() { var orderBy = new[] { "TestOrderBy1", "TestOrderBy2", "TestOrderBy3" }; var builder = new AzureSearchQueryBuilder("TestSearchText") .WithOrderBy(orderBy); var result = builder.Build(); result.Options.OrderBy.Should().Equal(orderBy); }
public void Build_WithFacets_ReturnsQueryWithExpectedFacets() { var facets = new[] { "TestFacet1", "TestFacet2", "TestFacet3" }; var builder = new AzureSearchQueryBuilder("TestSearchText") .WithFacets(facets); var result = builder.Build(); result.Options.Facets.Should().Equal(facets); }
public (string SearchText, SearchOptions Options) GenerateSearchQuery() { var searchTerms = SearchText.TransformSegments(s => s .TransformWhen(s => s.EndsWith("'s"), s => s.Substring(0, s.Length - 2)) .TransformWhen(s => s.EndsWith("s'"), s => s.Substring(0, s.Length - 2)) .TransformWhen(s => s.EndsWith("s"), s => s.Substring(0, s.Length - 1)) .RemoveNonAlphanumericChars() .AppendWildcardWhenLastCharIsAlphanumeric()); var searchText = searchTerms.Any() ? $"\"{SearchText.Trim().EscapeSimpleQuerySearchOperators()}\" | ({searchTerms})" : !string.IsNullOrWhiteSpace(SearchText) ? $"{SearchText.Trim().EscapeSimpleQuerySearchOperators()}*" : "*"; var builder = new AzureSearchQueryBuilder(searchText) .WithSearchMode(SearchMode.All) .WithSearchFields(SearchFields?.ToArray()) .WithSearchInFilter(nameof(Lars.NotionalNVQLevelv2), NotionalNVQLevelv2Filters) .WithSearchInFilter(nameof(Lars.AwardOrgCode), AwardOrgCodeFilters) .WithSearchInFilter(nameof(Lars.AwardOrgAimRef), AwardOrgAimRefFilters) .WithSearchInFilter(nameof(Lars.SectorSubjectAreaTier1), SectorSubjectAreaTier1Filters) .WithSearchInFilter(nameof(Lars.SectorSubjectAreaTier2), SectorSubjectAreaTier2Filters) .WithFacets(Facets?.ToArray()) .WithSize(PageSize) .WithIncludeTotalCount(); if (CertificationEndDateFilter.HasValue) { builder.WithFilters($"({nameof(Lars.CertificationEndDate)} ge {CertificationEndDateFilter.Value:O} or {nameof(Lars.CertificationEndDate)} eq null)"); } if (PageNumber.HasValue) { builder.WithSkip(PageSize * (PageNumber - 1)); } return(builder.Build()); }
public void GivenQueryBuilder_ThenFilterValueIsProper(AzureSearchQueryBuilder builder, string expectedFilterValue) { var query = builder.Build(); Assert.That(query.Filter, Is.EqualTo(expectedFilterValue)); }