Example #1
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();
        }
Example #2
0
        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> >());
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }