Esempio n. 1
0
        public async Task DownloadImagesAsync_UnexistingImage_DownloadsAndSaves()
        {
            // Arrange
            var metadata = new BingArchiveDto
            {
                Images = new []
                {
                    new BingImagesArchiveDto
                    {
                        Url = "/th?id=myImage001.jpg"
                    }
                }
            };
            string folderPath = "c:\\";

            var streamMock = new Mock <Stream>();

            _mocker.GetMock <IHttpAdapter>()
            .Setup(x => x.GetStreamAsync(new Uri("https://www.bing.com/th?id=myImage001.jpg", UriKind.Absolute), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(streamMock.Object));

            _mocker.GetMock <IFileStreamAdapter>()
            .Setup(x => x.SaveAsync(streamMock.Object, "c:\\myImage001.jpg", It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);

            // Act
            var images = (await _service.DownloadImagesAsync(metadata, folderPath)).ToList();

            // Assert
            Assert.Single(images);
            Assert.Contains("c:\\myImage001.jpg", images);
        }