public async Task GetDownloadDetails_Returns_Correct_Data()
        {
            var key = "*";

            var searchResult = new DocumentSearchResult <DownloadDetailsModel>(
                PopulateDownloadsData(),
                1,
                0,
                null,
                SearchContinuationToken.CreateTestToken("foo"));

            var clientMock = new Mock <IDownloadsIndexService>();

            var azureServiceMock = new Mock <IAzureService>();
            var searchTermFormattingServiceMock = new Mock <ISearchTermFormattingService>();

            azureServiceMock
            .Setup(m => m.SearchIndexAsync <DownloadDetailsModel>(clientMock.Object, key, It.IsAny <SearchParameters>()))
            .ReturnsAsync(searchResult);

            var mapper  = new AzureDownloadDataMapper();
            var service = new AzureDownloadsService(azureServiceMock.Object, mapper, clientMock.Object, searchTermFormattingServiceMock.Object);

            var result = (await service.GetDownloadDetails(key)).ToList();

            result.Count.Should().Be(6);
            result[0].Id.Should().Be("4");
            result[1].Id.Should().Be("8");
            result[2].Id.Should().Be("12");
            result[3].Id.Should().Be("2");
            result[4].Id.Should().Be("6");
            result[5].Id.Should().Be("10");
        }
        public void Map_Returns_Valid_Model()
        {
            var downloadData = new DownloadDetailsModel
            {
                Id             = "1",
                Version        = "007",
                Type           = "CSV",
                DateUploaded   = DateTime.Now,
                ApplicableFrom = DateTime.Now,
                DownloadLink   = "larsdownload/2020/07 Jul/09/Learning Delivery/20200709_105838_LearningDelivery_V007_CSV.Zip"
            };

            var service = new AzureDownloadDataMapper();

            var result = service.Map(downloadData);

            result.Id.Should().Be(downloadData.Id);
            result.Version.Should().Be(downloadData.Version);
            result.Type.Should().Be(downloadData.Type);
            result.DateUploaded.Should().Be(downloadData.DateUploaded);
            result.ApplicableFrom.Should().Be(downloadData.ApplicableFrom);
            result.DownloadLink.Should().Be(downloadData.DownloadLink);
        }