public void IsCommonCojoinginWordTest(string searchTerm, bool expected) { var testObject = new DfcSearchQueryBuilder(); var searchTermResult = testObject.IsCommonCojoinginWord(searchTerm?.ToLowerInvariant()); searchTermResult.Should().Be(expected); }
public async Task SearchActualBuilderAsyncTest(string searchTerm, string expectedComputedSearchTerm) { //Arrange //Reals var actualQueryBuilder = new DfcSearchQueryBuilder(); var actualManipulator = new JobProfileSearchManipulator(); //Fakes var fakeIndexClient = A.Fake <ISearchIndexClient>(o => o.Strict()); var fakeQueryConverter = A.Fake <IAzSearchQueryConverter>(o => o.Strict()); var fakeDocumentsOperation = A.Fake <IDocumentsOperations>(); var dummySearchProperty = A.Dummy <SearchProperties>(); var dummySearchParameters = A.Dummy <SearchParameters>(); var dummySearchResult = A.Dummy <Data.AzureSearch.Models.SearchResult <JobProfileIndex> >(); var dummySearchIndexClientFactory = A.Fake <ISearchIndexClientFactory>(); //Configure A.CallTo(() => dummySearchIndexClientFactory.GetSearchIndexClient()).Returns(fakeIndexClient); A.CallTo(() => fakeQueryConverter.BuildSearchParameters(A <SearchProperties> ._)).Returns(dummySearchParameters); A.CallTo(() => fakeIndexClient.Documents).Returns(fakeDocumentsOperation); A.CallTo(() => fakeQueryConverter.ConvertToSearchResult(A <DocumentSearchResult <JobProfileIndex> > ._, A <SearchProperties> ._)).Returns(dummySearchResult); //Act var searchService = new DfcSearchQueryService <JobProfileIndex>(fakeQueryConverter, actualQueryBuilder, actualManipulator, dummySearchIndexClientFactory); await searchService.SearchAsync(searchTerm, dummySearchProperty).ConfigureAwait(false); //Assert A.CallTo(() => fakeQueryConverter.BuildSearchParameters(A <SearchProperties> ._)).MustHaveHappened(); A.CallTo(() => fakeIndexClient.Documents).MustHaveHappened(); A.CallTo(() => fakeDocumentsOperation.SearchWithHttpMessagesAsync <JobProfileIndex>(A <string> .That.Contains(expectedComputedSearchTerm), A <SearchParameters> ._, A <SearchRequestOptions> ._, A <Dictionary <string, List <string> > > ._, A <CancellationToken> ._)).MustHaveHappened(); A.CallTo(() => fakeQueryConverter.ConvertToSearchResult(A <DocumentSearchResult <JobProfileIndex> > ._, A <SearchProperties> ._)).MustHaveHappened(); }
[InlineData("diplomacy", "diplo")] //macy public void TrimSuffixFromSingleWordTest(string searchTerm, string expected) { var testObject = new DfcSearchQueryBuilder(); var searchTermResult = testObject.TrimSuffixFromSingleWord(searchTerm); searchTermResult.Should().Be(expected); }
[InlineData("criminology", "", "criminolo")] //ology public void SpecialologiesTest(string searchTerm, string replacedSuffixTerm, string expected) { var testObject = new DfcSearchQueryBuilder(); var searchTermResult = testObject.Specialologies(searchTerm, replacedSuffixTerm); searchTermResult.Should().Be(expected); }
public void BuildExactMatchTest(string searchTerm, string partialSearchTerm, bool useRawSearchTerm, string expected) { var queryBuilder = new DfcSearchQueryBuilder(); var result = queryBuilder.BuildExactMatchSearch(searchTerm, partialSearchTerm, new SearchProperties { UseRawSearchTerm = useRawSearchTerm }); result.Should().Be(expected); }
public void RemoveSpecialCharactersFromTheSearchTerm(string searchTerm, string expected, bool shouldUseRaw) { SearchProperties properties = shouldUseRaw ? new SearchProperties { UseRawSearchTerm = true } : null; var testObject = new DfcSearchQueryBuilder(); var result = testObject.RemoveSpecialCharactersFromTheSearchTerm(searchTerm, properties); result.Should().Be(expected); }
public void CleanSearchTermTest(string searchTerm, string expected, bool?shouldUseRaw) { SearchProperties properties = shouldUseRaw == true ? new SearchProperties { UseRawSearchTerm = true } : null; var testObject = new DfcSearchQueryBuilder(); var result = testObject.EscapeSpecialCharactersInSearchTerm(searchTerm, properties); result.Should().Be(expected); }
public void BuildContainPartialSearchTest(string cleanedSearchTerm, bool?isRaw, string expectation) { var properties = isRaw is null ? null : new SearchProperties { UseRawSearchTerm = isRaw.Value }; var testObject = new DfcSearchQueryBuilder(); var result = testObject.BuildContainPartialSearch(cleanedSearchTerm, properties); result.Should().Be(expectation); }
[InlineData("Hydrotherapy", "Hydrothera")] //therapy public void TrimSuffixesTest(string searchTerm, string expected) { var testObject = new DfcSearchQueryBuilder(); var searchTermResult = testObject.RemoveSpecialCharactersFromTheSearchTerm(searchTerm, new SearchProperties() { UseRawSearchTerm = false }); var trimmedOutput = testObject.TrimCommonWordsAndSuffixes(searchTermResult, new SearchProperties()); trimmedOutput.Should().Be(expected); }
public void BuiBuildContainPartialSearchTest(string searchTerm, string expected) { var testObject = new DfcSearchQueryBuilder(); var searchTermResult = testObject.RemoveSpecialCharactersFromTheSearchTerm(searchTerm, new SearchProperties() { UseRawSearchTerm = false }); var outputWithContainsWildCard = testObject.BuildContainPartialSearch(searchTermResult, new SearchProperties()); outputWithContainsWildCard.Should().Be(expected); }
public void BuildExclusiveExactMatchTest(string searchTerm, string filter, string expected) { var properties = new SearchProperties { FilterBy = filter, }; var testObject = new DfcSearchQueryBuilder(); var result = testObject.BuildExclusiveExactMatch(searchTerm, properties); result.FilterBy.Should().Be(expected); }