Updated DLSiteClient test to handle translations. Added Alingual to the list of "All" supported languages.

This commit is contained in:
2025-11-01 22:43:34 -04:00
parent 4191a42afd
commit 5cde64ac77
2 changed files with 42 additions and 4 deletions

View File

@@ -18,7 +18,8 @@ public sealed record SupportedLanguage(string Code, Language Language)
English,
ChineseSimplified,
ChineseTraditional,
Korean
Korean,
Alingual
];
private static readonly Dictionary<string, SupportedLanguage> _byCode =

View File

@@ -1,5 +1,6 @@
using JSMR.Application.Integrations.DLSite.Models;
using JSMR.Domain.Enums;
using JSMR.Domain.ValueObjects;
using JSMR.Infrastructure.Http;
using JSMR.Infrastructure.Integrations.DLSite;
using JSMR.Infrastructure.Integrations.DLSite.Mapping;
@@ -60,25 +61,61 @@ public class DLSiteClientTests
TitleId = "SE0001",
TitleName = "Series 1"
}
},
{
"RG0002",
new ProductInfo()
{
WishlistCount = 100,
DownloadCount = 50,
Options = ["TRI", "ENG", "DOT", "VET"],
TitleId = "SE0001",
TitleName = "Series 1",
TranslationInfo = new()
{
OriginalWorkNumber = "RG0001",
Language = "ENG"
}
}
}
};
// General
VoiceWorkDetailCollection mappedCollection = DLSiteToDomainMapper.Map(productInfoCollection);
mappedCollection.Count.ShouldBe(1);
mappedCollection.Count.ShouldBe(2);
mappedCollection.ShouldContainKey("RG0001");
mappedCollection.ShouldContainKey("RG0002");
// RG0001
VoiceWorkDetails voiceWorkDetails = mappedCollection["RG0001"];
voiceWorkDetails.WishlistCount.ShouldBe(250);
voiceWorkDetails.DownloadCount.ShouldBe(100);
voiceWorkDetails.HasTrial.ShouldBe(true);
voiceWorkDetails.HasDLPlay.ShouldBe(true);
voiceWorkDetails.AI.ShouldBe(AIGeneration.None);
voiceWorkDetails.SupportedLanguages.ShouldBe([SupportedLanguage.Japanese]);
voiceWorkDetails.Series.ShouldNotBeNull();
voiceWorkDetails.Series.Identifier.ShouldBe("SE0001");
voiceWorkDetails.Series.Name.ShouldBe("Series 1");
voiceWorkDetails.SupportedLanguages.Count.ShouldBe(1);
voiceWorkDetails.SupportedLanguages[0].Language.ShouldBe(Language.Japanese);
// RG0002
VoiceWorkDetails secondVoiceWorkDetails = mappedCollection["RG0002"];
secondVoiceWorkDetails.WishlistCount.ShouldBe(100);
secondVoiceWorkDetails.DownloadCount.ShouldBe(50);
secondVoiceWorkDetails.HasTrial.ShouldBe(true);
secondVoiceWorkDetails.HasDLPlay.ShouldBe(false);
secondVoiceWorkDetails.AI.ShouldBe(AIGeneration.None);
secondVoiceWorkDetails.SupportedLanguages.ShouldBe([SupportedLanguage.English]);
secondVoiceWorkDetails.Series.ShouldNotBeNull();
secondVoiceWorkDetails.Series.Identifier.ShouldBe("SE0001");
secondVoiceWorkDetails.Series.Name.ShouldBe("Series 1");
secondVoiceWorkDetails.Translation.ShouldNotBeNull();
secondVoiceWorkDetails.Translation.OriginalProductId.ShouldBe("RG0001");
secondVoiceWorkDetails.Translation.Language.ShouldBe(Language.English);
secondVoiceWorkDetails.Translation.Kind.ShouldBe(TranslationKind.Official | TranslationKind.Recommended);
}
}