using Ludarium.Infrastructure; namespace Ludarium.IntegrationTests; public sealed class GameArtworkEnricherTests { [Theory] [InlineData("Asterix and Obelix Slap Them All")] [InlineData("Call of Duty - Black Ops 6")] [InlineData("Destroy All Humans 2")] [InlineData("Evil Genius 2 World Domination")] [InlineData("Life is Strange Reunion Deluxe Edition v1 003 000")] [InlineData("Life is Strange Reunion Deluxe Edition v1 003 000 PS5-UNLiMiTED")] [InlineData("PRAGMATA")] [InlineData("RollerCoaster Tycoon Adventures Deluxe")] [InlineData("Two Point Museum")] public void ProductionPs5TitlesHaveProvenanceBackedRetailFallbacks(string title) { var source = Assert.IsType(GameArtworkEnricher.FindCuratedRetailArtwork(title, "ps5")); Assert.Equal("WorldOfGames", source.Provider); Assert.Equal("curated-retailer-platform-box-front", source.MatchMethod); Assert.StartsWith("https://www.wog.ch/en/index.cfm/details/product/", source.ExternalId); } [Fact] public void CuratedFallbackDoesNotCrossPlatformBoundaries() => Assert.Null(GameArtworkEnricher.FindCuratedRetailArtwork("PRAGMATA", "windows")); [Fact] public void PsxSerialFallbackRetainsItsArchivalProvenance() { var source = Assert.IsType(GameArtworkEnricher.FindCuratedRetailArtwork("Disney's A Bug's Life", "psx")); Assert.Equal("PSXDataCenter", source.Provider); Assert.Equal("curated-serial-platform-box-front", source.MatchMethod); Assert.EndsWith("SCUS-94288.html", source.ExternalId); } [Fact] public void DigitalOnlyWindowsReleaseIsExplicitlyNotClaimedAsRetail() { var source = Assert.IsType(GameArtworkEnricher.FindCuratedRetailArtwork("Movies Tycoon", "windows")); Assert.Equal("SteamDigital", source.Provider); Assert.Equal("verified-digital-only-storefront-front", source.MatchMethod); } }