Exemple #1
0
        public static ComicVisiting <Stream> CreateResrouceVisitor()
        {
            var creator = new StreamResourceFactoryCreator();
            var eng     = new ComicEngine();

            eng.Add(new ResourceComicCondition());
            var prov     = new ResourceComicProvider();
            var provider = new ValueServiceProvider
            {
                ServiceMap = new Dictionary <Type, Func <object> >
                {
                    [typeof(ComicEngine)]           = () => eng,
                    [typeof(ResourceComicProvider)] = () => prov,
                }
            };

            provider.ServiceMap.Add(typeof(IServiceScopeFactory), () => new ValueServiceScopeFactory {
                ScopeFactory = () => new ValueServiceScope {
                    ServiceProvider = provider
                }
            });
            var visit = new ComicVisiting <Stream>(provider, creator);

            return(visit);
        }
Exemple #2
0
        public void GivenAnyNullValueToEmit_MustThrowException()
        {
            var mgr            = new RecyclableMemoryStreamManager();
            var sourceProvider = new ResourceComicProvider();
            var saver          = new NullSaver();

            Assert.ThrowsException <ArgumentNullException>(() => new ComicDownloader(mgr).EmitTasks(null));
            Assert.ThrowsException <ArgumentNullException>(() => new ComicDownloader(mgr).EmitTasks(new ComicDownloadRequest(saver, null, null, null, sourceProvider)));
            Assert.ThrowsException <ArgumentNullException>(() => new ComicDownloader(mgr).EmitTasks(new ComicDownloadRequest(null, null, null, new DownloadItemRequest[0], sourceProvider)));
            Assert.ThrowsException <ArgumentNullException>(() => new ComicDownloader(mgr).EmitTasks(new ComicDownloadRequest(saver, null, null, null, sourceProvider)));
        }
Exemple #3
0
        private ComicDownloadRequest CreateRequest(int count)
        {
            var sourceProvider = new ResourceComicProvider();
            var saver          = new NullSaver();
            var reqs           = Enumerable.Range(0, count)
                                 .Select(x => new DownloadItemRequest(new ComicPage {
                TargetUrl = "-no-"
            }))
                                 .ToArray();
            var req = new ComicDownloadRequest(saver, null, null, reqs, sourceProvider);

            return(req);
        }
Exemple #4
0
 public async Task CallBatchEmit_AllTaskMustBeRun()
 {
     var provider = new ResourceComicProvider();
     var reqs     = new DownloadItemRequest[]
     {
         new DownloadItemRequest(null),
         new DownloadItemRequest(null),
         new DownloadItemRequest(null),
         new DownloadItemRequest(null),
     };
     var req        = new ComicDownloadRequest(new NullSaver(), null, null, new DownloadItemRequest[0], provider);
     var downloader = new ComicDownloader(new RecyclableMemoryStreamManager());
     await ComicDownloaderExtensions.BatchEmitAsync(downloader, req);
 }