コード例 #1
0
        public void StartDownloadTestCaseUrlNotHandled()
        {
            downloadMethod.Setup(x => x.CanHandle(It.IsAny <string>())).Returns(false);
            var services = new ServiceCollection();

            services.AddScoped(typeof(IDownloadMethod), delegate { return(downloadMethod.Object); });

            var serviceProvider = services.BuildServiceProvider();

            var service = new DownloadItemService(logger.Object, serviceProvider, options.Object, dispatcher.Object, repository.Object);

            Assert.IsFalse(service.StartDownload(new DownloadItem {
                FileUrl = "not-handled-url.com/123"
            }, out var err));
            Assert.AreEqual(err, DownloadItemActionError.UrlNotHandled);
        }
コード例 #2
0
        public void CancelDownload()
        {
            downloadMethod.Setup(x => x.CanHandle(It.IsAny <DownloadType>())).Returns(true);

            var services = new ServiceCollection();

            services.AddScoped(typeof(IDownloadMethod), delegate { return(downloadMethod.Object); });
            var serviceProvider = services.BuildServiceProvider();

            var service = new DownloadItemService(logger.Object, serviceProvider, options.Object, dispatcher.Object, repository.Object);

            var item = new DownloadItem();

            service.CancelDownload(item);

            downloadMethod.Verify(x => x.Cancel(item), Times.Once);
        }
コード例 #3
0
        public void StartDownloadTestCaseOk()
        {
            downloadMethod.Setup(x => x.CanHandle(It.IsAny <string>())).Returns(true);

            var services = new ServiceCollection();

            services.AddScoped(typeof(IDownloadMethod), delegate { return(downloadMethod.Object); });
            var serviceProvider = services.BuildServiceProvider();

            var service = new DownloadItemService(logger.Object, serviceProvider, options.Object, dispatcher.Object, repository.Object);
            var result  = service.StartDownload(new DownloadItem {
                FileUrl = "handled-url.com"
            }, out _);

            Assert.True(result);
            downloadMethod.Verify(x => x.Start(It.IsAny <DownloadItem>()), Times.Once);
        }
コード例 #4
0
        public void StartDownloadTestCaseFileNotDownaloadable()
        {
            downloadMethod.Setup(x => x.CanHandle(It.IsAny <string>())).Returns(true);
            downloadMethod
            .Setup(m => m.Start(It.IsAny <DownloadItem>()))
            .Throws(new FileNotDownloadableException("File not downloadable"));

            var services = new ServiceCollection();

            services.AddScoped(typeof(IDownloadMethod), delegate { return(downloadMethod.Object); });
            var serviceProvider = services.BuildServiceProvider();

            var service = new DownloadItemService(logger.Object, serviceProvider, options.Object, dispatcher.Object, repository.Object);
            var result  = service.StartDownload(new DownloadItem {
                FileUrl = "handled-url.com/notAFile"
            }, out var err);

            Assert.IsFalse(result);
            Assert.AreEqual(err, DownloadItemActionError.DownloadabilityFailure);
        }