コード例 #1
0
        public void IsCommonCojoinginWordTest(string searchTerm, bool expected)
        {
            var testObject       = new DfcSearchQueryBuilder();
            var searchTermResult = testObject.IsCommonCojoinginWord(searchTerm?.ToLowerInvariant());

            searchTermResult.Should().Be(expected);
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        [InlineData("diplomacy", "diplo")]      //macy
        public void TrimSuffixFromSingleWordTest(string searchTerm, string expected)
        {
            var testObject       = new DfcSearchQueryBuilder();
            var searchTermResult = testObject.TrimSuffixFromSingleWord(searchTerm);

            searchTermResult.Should().Be(expected);
        }
コード例 #4
0
        [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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        [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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }