74 lines
2.8 KiB
C#
74 lines
2.8 KiB
C#
using HtmlAgilityPack;
|
||
using MangaReader.Core.Metadata;
|
||
using MangaReader.Core.Sources.MangaNato.Metadata;
|
||
using Shouldly;
|
||
|
||
namespace MangaReader.Tests.WebCrawlers;
|
||
|
||
public class UnitTest1
|
||
{
|
||
class TestMangaNatoWebCrawler : MangaNatoWebCrawler
|
||
{
|
||
protected override Task<HtmlDocument> GetHtmlDocumentAsync(string url, CancellationToken cancellationToken)
|
||
{
|
||
HtmlWeb web = new()
|
||
{
|
||
UsingCacheIfExists = false
|
||
};
|
||
|
||
return Task.FromResult(web.Load(url));
|
||
}
|
||
}
|
||
|
||
private readonly string samplesPath;
|
||
private readonly string mangaNatoSampleFilePath;
|
||
|
||
public UnitTest1()
|
||
{
|
||
samplesPath = Path.Combine(AppContext.BaseDirectory, "WebCrawlers", "Samples");
|
||
mangaNatoSampleFilePath = Path.Combine(samplesPath, "MangaNato - Please Go Home, Akutsu-San!.htm");
|
||
}
|
||
|
||
[Fact]
|
||
public async Task Get_Manga()
|
||
{
|
||
var webCrawler = new TestMangaNatoWebCrawler();
|
||
var manga = await webCrawler.GetMangaAsync(mangaNatoSampleFilePath, CancellationToken.None);
|
||
|
||
manga.ShouldNotBeNull();
|
||
|
||
manga.Title.ShouldBe("Please Go Home, Akutsu-San!");
|
||
|
||
manga.AlternateTitles.ShouldBe([
|
||
"Kaette kudasai! Akutsu-san",
|
||
"Yankee Musume",
|
||
"ヤンキー娘",
|
||
"帰ってください! 阿久津さん"]);
|
||
|
||
manga.Authors.ShouldBe(["Nagaoka Taichi"]);
|
||
manga.Status.ShouldBe(MangaStatus.Ongoing);
|
||
manga.Genres.ShouldBe(["Comedy", "Romance", "School life"]);
|
||
manga.UpdateDate.ShouldBe(new DateTime(2024, 9, 26, 0, 12, 0));
|
||
manga.Views.ShouldBe(93_300_000);
|
||
manga.RatingPercent.ShouldBe(97);
|
||
manga.Votes.ShouldBe(15979);
|
||
|
||
//manga.Description.ShouldStartWith("Ooyama-kun normally doesn’t get involved with Akutsu-san, a delinquent girl in his class");
|
||
manga.Description.ShouldStartWith("Ooyama-kun normally doesn’t get involved with Akutsu-san, a delinquent girl in his class");
|
||
manga.Description.ShouldEndWith("Artist's Pixiv: https://www.pixiv.net/member.php?id=133935");
|
||
|
||
manga.Chapters.Count.ShouldBe(236);
|
||
|
||
manga.Chapters[0].Url.ShouldBe("https://chapmanganato.to/manga-hf984788/chapter-186");
|
||
manga.Chapters[0].Number.ShouldBe(186);
|
||
manga.Chapters[0].Name.ShouldBe("Chapter 186");
|
||
manga.Chapters[0].Views.ShouldBe(37_900);
|
||
manga.Chapters[0].UploadDate.ShouldBe(new DateTime(2024, 9, 26, 0, 9, 0));
|
||
|
||
manga.Chapters[235].Url.ShouldBe("https://chapmanganato.to/manga-hf984788/chapter-0.1");
|
||
manga.Chapters[235].Number.ShouldBe(0.1f);
|
||
manga.Chapters[235].Name.ShouldBe("Vol.0 Chapter : Oneshot");
|
||
manga.Chapters[235].Views.ShouldBe(232_200);
|
||
manga.Chapters[235].UploadDate.ShouldBe(new DateTime(2021, 8, 24, 1, 8, 0));
|
||
}
|
||
} |