using LANCommander.Launcher.Data.Models; using LANCommander.Launcher.Models; using LANCommander.SDK.Enums; namespace LANCommander.Launcher.Services.Tests.Helpers; internal static class GameFactory { public static Game Make( string title, Guid? id = null, bool installed = false, bool singleplayer = false, Engine? engine = null, IEnumerable? genres = null, IEnumerable? tags = null, IEnumerable? developers = null, IEnumerable? publishers = null, IEnumerable? platforms = null, IEnumerable? multiplayerModes = null, GameType type = GameType.MainGame) { return new Game { Id = id ?? Guid.NewGuid(), Title = title, SortTitle = title, // Empty (not null) so ListItem(game)'s ManifestHelper.GetPath / Path.Combine never NPEs. InstallDirectory = string.Empty, Installed = installed, Singleplayer = singleplayer, Engine = engine, Type = type, Genres = genres?.ToList() ?? new List(), Tags = tags?.ToList() ?? new List(), Developers = developers?.ToList() ?? new List(), Publishers = publishers?.ToList() ?? new List(), Platforms = platforms?.ToList() ?? new List(), MultiplayerModes = multiplayerModes?.ToList() ?? new List(), }; } public static ListItem AsListItem(this Game game) => new(game); }