public async Task PerformSearch_FirstSearchResultReturnedCorrectly() { // Arrange ISpecificationsApiClient specsClient = Substitute.For <ISpecificationsApiClient>(); ILogger logger = Substitute.For <ILogger>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ISpecificationSearchService SpecificationSearchService = new SpecificationSearchService(specsClient, mapper, logger); int numberOfItems = 25; PagedResult <SpecificationSearchResultItem> itemResult = GeneratePagedResult(numberOfItems); specsClient .FindSpecifications(Arg.Any <SearchFilterRequest>()) .Returns(itemResult); SearchRequestViewModel request = new SearchRequestViewModel(); // Act SpecificationSearchResultViewModel results = await SpecificationSearchService.PerformSearch(request); // Assert SpecificationSearchResultItemViewModel first = results.Specifications.First(); first.Should().NotBeNull(); first.Id.Should().Be("10"); first.Name.Should().Be("Specification 1"); first.Status.Should().Be("Draft"); first.FundingPeriodName.Should().Be("Test Period"); first.IsSelectedForFunding.Should().BeTrue(); }
public async Task PerformSearch_FirstSearchResultWithFacets_ReturnedCorrectly() { // Arrange ISpecificationsApiClient specsClient = Substitute.For <ISpecificationsApiClient>(); ILogger logger = Substitute.For <ILogger>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ISpecificationSearchService SpecificationSearchService = new SpecificationSearchService(specsClient, mapper, logger); int numberOfItems = 25; IEnumerable <SearchFacet> facets = new[] { new SearchFacet(), new SearchFacet() }; PagedResult <SpecificationSearchResultItem> itemResult = GeneratePagedResult(numberOfItems, facets); specsClient .FindSpecifications(Arg.Any <SearchFilterRequest>()) .Returns(itemResult); SearchRequestViewModel request = new SearchRequestViewModel(); // Act SpecificationSearchResultViewModel results = await SpecificationSearchService.PerformSearch(request); // Assert SpecificationSearchResultItemViewModel first = results.Specifications.First(); first .Should() .NotBeNull(); first .Should() .BeEquivalentTo(new SpecificationSearchResultItemViewModel() { Id = "10", Name = "Specification 1", FundingPeriodName = "Test Period", FundingPeriodId = "FundingPeriodID", Status = "Draft", Description = "Description", FundingStreamIds = new[] { "fs1", "fs2" }, FundingStreamNames = new[] { "Funding Stream 1", "Funding Stream 2" }, LastUpdatedDate = new DateTime(2018, 12, 5, 12, 5, 6), IsSelectedForFunding = true }); results .Facets .Count() .Should() .Be(2); }
public async Task PerformSearch_FirstSearchResultWithFacets_EnsuresFacetsLoadedCorrectly() { // Arrange ISpecificationsApiClient specsClient = Substitute.For <ISpecificationsApiClient>(); ILogger logger = Substitute.For <ILogger>(); IMapper mapper = MappingHelper.CreateFrontEndMapper(); ISpecificationSearchService SpecificationSearchService = new SpecificationSearchService(specsClient, mapper, logger); int numberOfItems = 25; IEnumerable <SearchFacet> facets = new[] { new SearchFacet { Name = "facet 1", FacetValues = new[] { new SearchFacetValue { Name = "f1", Count = 5 } } }, new SearchFacet { Name = "facet 2", FacetValues = new[] { new SearchFacetValue { Name = "f2", Count = 11 }, new SearchFacetValue { Name = "f3", Count = 1 } } } }; PagedResult <SpecificationSearchResultItem> itemResult = GeneratePagedResult(numberOfItems, facets); specsClient .FindSpecifications(Arg.Any <SearchFilterRequest>()) .Returns(itemResult); SearchRequestViewModel request = new SearchRequestViewModel(); // Act SpecificationSearchResultViewModel results = await SpecificationSearchService.PerformSearch(request); // Assert SpecificationSearchResultItemViewModel first = results.Specifications.First(); first.Should().NotBeNull(); first.Id.Should().Be("10"); first.Name.Should().Be("Specification 1"); first.Status.Should().Be("Draft"); first.FundingPeriodName.Should().Be("Test Period"); results.Facets.Count().Should().Be(2); results.Facets.First().Name.Should().Be("facet 1"); results.Facets.First().FacetValues.Count().Should().Be(1); results.Facets.First().FacetValues.First().Name.Should().Be("f1"); results.Facets.First().FacetValues.First().Count.Should().Be(5); results.Facets.Last().Name.Should().Be("facet 2"); results.Facets.Last().FacetValues.Count().Should().Be(2); results.Facets.Last().FacetValues.First().Name.Should().Be("f2"); results.Facets.Last().FacetValues.First().Count.Should().Be(11); results.Facets.Last().FacetValues.Last().Name.Should().Be("f3"); results.Facets.Last().FacetValues.Last().Count.Should().Be(1); }