public async Task MangaReader_Test() { string url = "http://www.mangareader.net/naruto"; var service = new MangaReader(_logger, new Downloader(_logger), new HtmlAtilityPackAdapter()); // Test service can find chapters var chapters = await service.FindChapters(url, new Progress <int>(), _source.Token); Assert.IsTrue(chapters.Any(), "Cannot find chapters."); // Test chapters are in correct order. var chapter = chapters.Last(); Assert.AreEqual("Naruto", chapter.Manga); Assert.AreEqual("Naruto 1", chapter.DisplayName); Assert.AreEqual("http://www.mangareader.net/naruto/1", chapter.Url); // Test there're no duplicated chapters. var anyDuplicated = chapters.GroupBy(x => x.Url).Any(g => g.Count() > 1); Assert.IsFalse(anyDuplicated, "There're duplicated chapters."); // Test service can find images. var images = await service.FindImages(chapter, new Progress <int>(), _source.Token); Assert.AreEqual(53, images.Count()); Assert.AreEqual("http://i10.mangareader.net/naruto/1/naruto-1564773.jpg", images.ToArray()[0]); Assert.AreEqual("http://i4.mangareader.net/naruto/1/naruto-1564774.jpg", images.ToArray()[1]); Assert.AreEqual("http://i1.mangareader.net/naruto/1/naruto-1564825.jpg", images.ToArray()[52]); string imageString = await downloader.DownloadStringAsync(images.ToArray()[0], _source.Token); Assert.IsNotNull(imageString, "Cannot download image!"); }
public MangaReaderTests() { source = new CancellationTokenSource(); logger = new Mock <ILogger>().Object; downloader = new HttpDownloader(new FilenameDetector(new GoogleProxyFilenameDetector())); service = new MangaReader(logger, downloader, new XPathSelector()); }