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(); }
public void ReorderNullEverythingTest() { var mannipulator = new JobProfileSearchManipulator(); var result = mannipulator.Reorder(null, "test", null); result.Results.Should().BeEquivalentTo(Enumerable.Empty <Data.AzureSearch.Models.SearchResultItem <JobProfileIndex> >()); }
public void BuildSearchExpressionForRawTest(string searchTerm, string cleanedSearchTerm, string partialTermToSearch, bool?isRaw, string expectation) { var prop = isRaw is null ? null : new SearchProperties { UseRawSearchTerm = isRaw.Value }; var mannipulator = new JobProfileSearchManipulator(); var result = mannipulator.BuildSearchExpression(searchTerm, cleanedSearchTerm, partialTermToSearch, prop); result.Should().Be(expectation); }
public void ReorderNullDataTest() { var mannipulator = new JobProfileSearchManipulator(); SearchProperties searchProperties = new SearchProperties { Page = 1, }; var result = mannipulator.Reorder(null, "test", searchProperties); result.Results.Should().BeEquivalentTo(Enumerable.Empty <Data.AzureSearch.Models.SearchResultItem <JobProfileIndex> >()); }
public void TitleAsPriorityTest(string searchTerm, string expectedFirstResult) { var mannipulator = new JobProfileSearchManipulator(); SearchResult <Data.Model.JobProfileIndex> data = new SearchResult <JobProfileIndex> { Results = DummyJobProfileIndex.GenerateJobProfileResultItemDummyCollectionWithOrderPicker("Test") }; SearchProperties searchProperties = new SearchProperties { Page = 1 }; var result = mannipulator.Reorder(data, searchTerm, searchProperties); result.Results.First().ResultItem.Title.Should().Be(expectedFirstResult); }
public void ReorderNullResultTest() { var mannipulator = new JobProfileSearchManipulator(); SearchResult <Data.Model.JobProfileIndex> data = new SearchResult <JobProfileIndex> { Results = null }; SearchProperties searchProperties = new SearchProperties { Page = 1 }; var result = mannipulator.Reorder(data, "test", searchProperties); result.Results.Should().BeEquivalentTo(Enumerable.Empty <SearchResultItem <JobProfileIndex> >()); }
public void ReorderAlternativeTitleTest(string searchTitle, int page, string expectedFirstResult) { var mannipulator = new JobProfileSearchManipulator(); SearchResult <Data.Model.JobProfileIndex> data = new SearchResult <JobProfileIndex> { Results = DummyJobProfileIndex.GenerateJobProfileResultItemDummyCollection("Test", 10, 1) }; SearchProperties searchProperties = new SearchProperties { Page = page }; var result = mannipulator.Reorder(data, searchTitle, searchProperties); result.Results.First().ResultItem.AlternativeTitle.First().Should().Be(expectedFirstResult); }