public void ConvertToSuggestionResultRaisesArgumentNullExceptionForMissingResult()
        {
            // Arrange
            DocumentSuggestResult <JobProfileIndex> result = null;
            var suggestProperties      = A.Fake <SuggestProperties>();
            var azSearchQueryConverter = new AzSearchQueryConverter();

            // Act
            var exceptionResult = Assert.Throws <ArgumentNullException>(() => azSearchQueryConverter.ConvertToSuggestionResult(result, suggestProperties));

            // assert
            Assert.Equal("Value cannot be null. (Parameter 'result')", exceptionResult.Message);
        }
        public void ConvertToSuggestionResultReturnsSuggestionResultForSearchProperties()
        {
            // Arrange
            var result                 = A.Fake <DocumentSuggestResult <JobProfileIndex> >();
            var suggestProperties      = A.Fake <SuggestProperties>();
            var azSearchQueryConverter = new AzSearchQueryConverter();

            // Act
            var results = azSearchQueryConverter.ConvertToSuggestionResult(result, suggestProperties);

            // Assert
            Assert.NotNull(results);
        }
        public void ConvertToSuggestionResultTest()
        {
            var suggestResult = new DocumentSuggestResult <JobProfileIndex>
            {
                Coverage = 1,
                Results  = new List <SuggestResult <JobProfileIndex> >
                {
                    new SuggestResult <JobProfileIndex>
                    {
                        Document = DummyJobProfileIndex.GenerateJobProfileIndexDummy("one"),
                        Text     = "one"
                    },
                    new SuggestResult <JobProfileIndex>
                    {
                        Document = DummyJobProfileIndex.GenerateJobProfileIndexDummy("two"),
                        Text     = "two"
                    }
                }
            };

            var properties = new SuggestProperties
            {
                MaxResultCount   = 5,
                UseFuzzyMatching = true
            };

            var queryConverter = new AzSearchQueryConverter();
            var result         = queryConverter.ConvertToSuggestionResult(suggestResult, properties);

            result.Coverage.Should().Be(1);
            result.Results.Count().Should().Be(suggestResult.Results.Count());
            result.Results.First().Index.Should().BeEquivalentTo(DummyJobProfileIndex.GenerateJobProfileIndexDummy("one"));
            result.Results.First().MatchedSuggestion.Should().Be("one");
            result.Results.Last().Index.Should().BeEquivalentTo(DummyJobProfileIndex.GenerateJobProfileIndexDummy("two"));
            result.Results.Last().MatchedSuggestion.Should().Be("two");
        }