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); }
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))); }
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); }
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); }