Files
jsmr/JSMR.Tests/Unit/DLSiteSearchFilterBuilderTests.cs

79 lines
2.5 KiB
C#

using JSMR.Infrastructure.Scanning;
using Shouldly;
namespace JSMR.Tests.Unit;
public class DLSiteSearchFilterBuilderTests
{
[Fact]
public void Build_Simple_Query()
{
var filterBuilder = new DLSiteSearchFilterBuilder()
.UseDefaultLocale()
.IncludeJapaneseSupportedLanguage();
string url = filterBuilder.BuildSearchQuery(1, 100);
using var writer = new StringWriter();
writer.Write($"https://www.dlsite.com/maniax/");
writer.Write($"fsr/=/language/jp/");
writer.Write("sex_category[0]/male/");
writer.Write("ana_flg/all/");
writer.Write("work_category[0]/doujin/");
writer.Write("order[0]/release_d/");
writer.Write("work_type_category[0]/audio/");
writer.Write("work_type_category_name[0]/ボイス・ASMR/");
writer.Write("options_and_or/and/");
writer.Write($"options[0]/JPN/");
writer.Write($"per_page/100/");
writer.Write($"page/1/");
writer.Write("show_type/1/");
writer.Write($"?locale=ja_JP");
url.ShouldBe(writer.ToString());
}
[Fact]
public void Build_Advanced_Query()
{
var filterBuilder = new DLSiteSearchFilterBuilder()
.UseEnglishLocale()
.IncludeJapaneseSupportedLanguage()
.IncludeEnglishSupportedLanguage()
.ExcludeMakers(["RG0000001", "RG0000002", "", "RG0000001"])
.ExcludePartiallyAIGeneratedWorks()
.ExcludeAIGeneratedWorks();
string url = filterBuilder.BuildSearchQuery(1, 100);
using var writer = new StringWriter();
writer.Write($"https://www.dlsite.com/maniax/");
writer.Write($"fsr/=/language/en/");
writer.Write("sex_category[0]/male/");
writer.Write("ana_flg/all/");
writer.Write("work_category[0]/doujin/");
writer.Write("order[0]/release_d/");
writer.Write("work_type_category[0]/audio/");
writer.Write("work_type_category_name[0]/ボイス・ASMR/");
writer.Write("options_and_or/and/");
writer.Write($"options[0]/JPN/");
writer.Write($"options[1]/ENG/");
writer.Write($"keyword_maker_name/-RG0000001+-RG0000002/");
writer.Write($"options_not[0]/AIP/");
writer.Write($"options_not[1]/AIG/");
writer.Write($"per_page/100/");
writer.Write($"page/1/");
writer.Write("show_type/1/");
writer.Write($"?locale=en_US");
url.ShouldBe(writer.ToString());
}
}