108 lines
4.0 KiB
C#
108 lines
4.0 KiB
C#
using MangaReader.Core.Search;
|
||
using MangaReader.Core.Sources.MangaDex.Api;
|
||
using MangaReader.Core.Sources.MangaDex.Search;
|
||
using NSubstitute;
|
||
using Shouldly;
|
||
|
||
namespace MangaReader.Tests.Sources.MangaDex.Search;
|
||
|
||
public class MangaDexSearchTests
|
||
{
|
||
[Fact]
|
||
public async Task Get_Search_Result()
|
||
{
|
||
MangaDexCollectionResponse collectionResponse = new()
|
||
{
|
||
Result = "ok",
|
||
Response = "collection",
|
||
Data =
|
||
[
|
||
new MangaEntity()
|
||
{
|
||
Id = new Guid("ee96e2b7-9af2-4864-9656-649f4d3b6fec"),
|
||
Type = "manga",
|
||
Attributes = new()
|
||
{
|
||
Title = new()
|
||
{
|
||
{ "en", "Gals Can’t Be Kind to Otaku!?" }
|
||
}
|
||
},
|
||
Relationships =
|
||
[
|
||
new CoverArtEntity()
|
||
{
|
||
Id = new Guid("a06943fd-6309-49a8-a66a-8df0f6dc41eb"),
|
||
Type = "cover_art",
|
||
Attributes = new()
|
||
{
|
||
FileName = "6b3073de-bb65-4723-8113-6068bf8c6eb4.jpg"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
new MangaEntity()
|
||
{
|
||
Id = new Guid("16c34950-954c-4f0d-808e-d8278a546339"),
|
||
Type = "manga",
|
||
Attributes = new()
|
||
{
|
||
Title = new()
|
||
{
|
||
{ "en", "Suufungo no Mirai ga Wakaru You ni Natta Kedo, Onnagokoro wa Wakaranai." }
|
||
}
|
||
},
|
||
Relationships =
|
||
[
|
||
new CoverArtEntity()
|
||
{
|
||
Id = new Guid("ee8588b5-145f-4eee-981a-eb604856fbd2"),
|
||
Type = "cover_art",
|
||
Attributes = new()
|
||
{
|
||
FileName = "7d301e1e-642b-4b7d-b65b-9777b36e80bf.jpg"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
new MangaEntity()
|
||
{
|
||
Id = new Guid("f395bfc6-e52f-4f64-9cfb-87037215d214"),
|
||
Type = "manga",
|
||
Attributes = new()
|
||
{
|
||
Title = new()
|
||
{
|
||
{ "en", "Ienai Himitsu No Aishikata" }
|
||
}
|
||
},
|
||
Relationships =
|
||
[
|
||
new CoverArtEntity()
|
||
{
|
||
Id = new Guid("40df2d2e-b786-4aa9-9218-e3ed168cd96e"),
|
||
Type = "cover_art",
|
||
Attributes = new()
|
||
{
|
||
FileName = "c00a33cd-b26b-4554-a9f0-d6885c81eb36.jpg"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
};
|
||
|
||
IMangaDexClient mangaDexClient = Substitute.For<IMangaDexClient>();
|
||
|
||
mangaDexClient.SearchMangaByTitleAsync(Arg.Any<string>(), CancellationToken.None)
|
||
.Returns(collectionResponse);
|
||
|
||
MangaDexSearchProvider searchProvider = new(mangaDexClient);
|
||
MangaSearchResult[] searchResult = await searchProvider.SearchAsync("Gal Can't Be Kind", CancellationToken.None);
|
||
|
||
searchResult.Length.ShouldBe(3);
|
||
searchResult[0].Title.ShouldBe("Gals Can’t Be Kind to Otaku!?");
|
||
searchResult[0].Url.ShouldBe("https://mangadex.org/title/ee96e2b7-9af2-4864-9656-649f4d3b6fec/gals-can-t-be-kind-to-otaku");
|
||
searchResult[0].Thumbnail.ShouldBe("https://mangadex.org/covers/ee96e2b7-9af2-4864-9656-649f4d3b6fec/6b3073de-bb65-4723-8113-6068bf8c6eb4.jpg");
|
||
}
|
||
} |