예제 #1
0
        public async Task Download_HttpClientHelper_Download()
        {
            var fakeHttpMessageHandler = new FakeHttpMessageHandler();
            var httpClient             = new HttpClient(fakeHttpMessageHandler);
            var httpProvider           = new HttpProvider(httpClient);

            var services = new ServiceCollection();

            services.AddSingleton <IStorage, FakeIStorage>();
            services.AddSingleton <ISelectorStorage, FakeSelectorStorage>();
            var serviceProvider = services.BuildServiceProvider();
            var scopeFactory    = serviceProvider.GetRequiredService <IServiceScopeFactory>();
            var storageProvider = serviceProvider.GetRequiredService <IStorage>();

            var httpClientHelper = new HttpClientHelper(httpProvider, scopeFactory, new FakeIWebLogger());

            // there is an file written
            var path   = Path.Combine(new CreateAnImage().BasePath, "file.txt");
            var output = await httpClientHelper.Download("https://qdraw.nl/test", path);

            Assert.AreEqual(true, output);

            Assert.AreEqual(FolderOrFileModel.FolderOrFileTypeList.File, storageProvider.IsFolderOrFile(path));
            storageProvider.FileDelete(path);
        }
예제 #2
0
        public async Task Download_HttpClientHelper_Download_HttpRequestException()
        {
            // > next HttpRequestException
            var fakeHttpMessageHandler = new FakeHttpMessageHandler(new HttpRequestException("should fail"));
            var httpClient             = new HttpClient(fakeHttpMessageHandler);
            var httpProvider           = new HttpProvider(httpClient);

            var services = new ServiceCollection();

            services.AddSingleton <IStorage, FakeIStorage>();
            services.AddSingleton <ISelectorStorage, FakeSelectorStorage>();
            var serviceProvider = services.BuildServiceProvider();
            var scopeFactory    = serviceProvider.GetRequiredService <IServiceScopeFactory>();

            var httpClientHelper = new HttpClientHelper(httpProvider, scopeFactory, new FakeIWebLogger());
            var output           = await httpClientHelper.Download("https://qdraw.nl/test", "/sdkflndf");

            Assert.IsFalse(output);
        }
예제 #3
0
        public async Task Download_HttpClientHelper_HTTP_Not_Download()
        {
            var fakeHttpMessageHandler = new FakeHttpMessageHandler();
            var httpClient             = new HttpClient(fakeHttpMessageHandler);
            var httpProvider           = new HttpProvider(httpClient);

            var services = new ServiceCollection();

            services.AddSingleton <IStorage, FakeIStorage>();
            services.AddSingleton <ISelectorStorage, FakeSelectorStorage>();
            var serviceProvider = services.BuildServiceProvider();
            var scopeFactory    = serviceProvider.GetRequiredService <IServiceScopeFactory>();

            var httpClientHelper = new HttpClientHelper(httpProvider, scopeFactory, new FakeIWebLogger());

            // http is not used anymore
            var path   = Path.Combine(new AppSettings().TempFolder, "pathToNOTdownload.txt");
            var output = await httpClientHelper.Download("http://qdraw.nl", path);

            Assert.AreEqual(false, output);
        }
예제 #4
0
        public async Task Download_HttpClientHelper_404NotFoundTest()
        {
            var fakeHttpMessageHandler = new FakeHttpMessageHandler();
            var httpClient             = new HttpClient(fakeHttpMessageHandler);
            var httpProvider           = new HttpProvider(httpClient);

            var services = new ServiceCollection();

            services.AddSingleton <IStorage, FakeIStorage>();
            services.AddSingleton <ISelectorStorage, FakeSelectorStorage>();
            var serviceProvider = services.BuildServiceProvider();
            var scopeFactory    = serviceProvider.GetRequiredService <IServiceScopeFactory>();

            var httpClientHelper = new HttpClientHelper(httpProvider, scopeFactory, new FakeIWebLogger());

            // there is an file written
            var path   = Path.Combine(new CreateAnImage().BasePath, "file.txt");
            var output = await httpClientHelper.Download("https://download.geonames.org/404", path);

            Assert.AreEqual(false, output);
        }
예제 #5
0
        public async Task Download_HttpClientHelperBadDomainDownload()
        {
            var fakeHttpMessageHandler = new FakeHttpMessageHandler();
            var httpClient             = new HttpClient(fakeHttpMessageHandler);
            var httpProvider           = new HttpProvider(httpClient);

            var services = new ServiceCollection();

            services.AddSingleton <IStorage, FakeIStorage>();
            services.AddSingleton <ISelectorStorage, FakeSelectorStorage>();
            var serviceProvider = services.BuildServiceProvider();
            var storageProvider = serviceProvider.GetRequiredService <IStorage>();
            var scopeFactory    = serviceProvider.GetRequiredService <IServiceScopeFactory>();

            var httpClientHelper = new HttpClientHelper(httpProvider, scopeFactory, new FakeIWebLogger());

            // use only whitelisted domains
            var path   = Path.Combine(new AppSettings().TempFolder, "pathToNOTdownload.txt");
            var output = await httpClientHelper.Download("http://mybadurl.cn", path);

            Assert.AreEqual(false, output);
        }