public void ImageReplaceMultiTest() { using (var temp = TempDirectory.Create()) { var db = new GameDatabase(temp.TempPath); db.OpenDatabase(); var game = new Game() { GameId = "testid", Name = "Test Game" }; var origIcon = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); var origImage = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); var origBackground = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); game.Icon = origIcon; game.CoverImage = origImage; game.BackgroundImage = origBackground; db.Games.Add(game); game = new Game() { GameId = "testid2", Name = "Test Game 2" }; origIcon = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); origImage = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); origBackground = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); game.Icon = origIcon; game.CoverImage = origImage; game.BackgroundImage = origBackground; db.Games.Add(game); var newIcon = PlayniteTests.GenerateFakeFile(); var newImage = PlayniteTests.GenerateFakeFile(); var newBackground = PlayniteTests.GenerateFakeFile(); // Replaces all images for all games var games = db.Games.ToList(); var model = new GameEditViewModel(games, db, new MockWindowFactory(), new MockDialogsFactory(), new MockResourceProvider(), null); model.EditingGame.Icon = newIcon.OriginalUrl; model.EditingGame.CoverImage = newImage.OriginalUrl; model.EditingGame.BackgroundImage = newBackground.OriginalUrl; model.ConfirmDialog(); Assert.AreEqual(3, Directory.GetFiles(db.GetFileStoragePath(games[0].Id)).Count()); Assert.AreEqual(3, Directory.GetFiles(db.GetFileStoragePath(games[1].Id)).Count()); CollectionAssert.AreEqual(newIcon.Content, File.ReadAllBytes(db.GetFullFilePath(games[0].Icon))); CollectionAssert.AreEqual(newImage.Content, File.ReadAllBytes(db.GetFullFilePath(games[0].CoverImage))); CollectionAssert.AreEqual(newBackground.Content, File.ReadAllBytes(db.GetFullFilePath(games[0].BackgroundImage))); CollectionAssert.AreEqual(newIcon.Content, File.ReadAllBytes(db.GetFullFilePath(games[1].Icon))); CollectionAssert.AreEqual(newImage.Content, File.ReadAllBytes(db.GetFullFilePath(games[1].CoverImage))); CollectionAssert.AreEqual(newBackground.Content, File.ReadAllBytes(db.GetFullFilePath(games[1].BackgroundImage))); } }
public void GlobalSetup() { // To register pack:// scheme var current = new Application(); PlayniteTests.SetEntryAssembly(Assembly.GetExecutingAssembly()); FileSystem.CreateDirectory(PlayniteTests.TempPath, true); NLogLogger.IsTraceEnabled = true; PlayniteSettings.ConfigureLogger(); }
public void VRMetadataTest() { var provider = new SteamMetadataProvider( new SteamLibrary(PlayniteTests.GetTestingApi().Object, null)); var data = provider.GetMetadata(new Game() { GameId = "378860" }); Assert.IsTrue(data.GameInfo.Features.Contains("VR")); }
public void AddFileTest() { using (var temp = TempDirectory.Create()) { var db = new GameDatabase(temp.TempPath); db.OpenDatabase(); var file = PlayniteTests.GenerateFakeFile(); var testId = Guid.NewGuid(); var addedId = db.AddFile(file.FileName, file.Content, testId); FileAssert.Exists(Path.Combine(temp.TempPath, "files", addedId)); } }
public void ImageReplaceTest() { using (var temp = TempDirectory.Create()) { var db = new GameDatabase(temp.TempPath); db.OpenDatabase(); var game = new Game() { GameId = "testid", Name = "Test Game" }; var origIcon = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); var origImage = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); var origBackground = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); game.Icon = origIcon; game.CoverImage = origImage; game.BackgroundImage = origBackground; db.Games.Add(game); var newIcon = PlayniteTests.GenerateFakeFile(); var newImage = PlayniteTests.GenerateFakeFile(); var newBackground = PlayniteTests.GenerateFakeFile(); File.WriteAllBytes(Path.Combine(temp.TempPath, newIcon.FileName), newIcon.Content); File.WriteAllBytes(Path.Combine(temp.TempPath, newImage.FileName), newImage.Content); File.WriteAllBytes(Path.Combine(temp.TempPath, newBackground.FileName), newBackground.Content); // Images are replaced var model = new GameEditViewModel(game, db, new MockWindowFactory(), new MockDialogsFactory(), new MockResourceProvider(), null); model.EditingGame.Icon = Path.Combine(temp.TempPath, newIcon.FileName); model.EditingGame.CoverImage = Path.Combine(temp.TempPath, newImage.FileName); model.EditingGame.BackgroundImage = Path.Combine(temp.TempPath, newBackground.FileName); model.ConfirmDialog(); Assert.AreNotEqual(game.Icon, origIcon); Assert.AreNotEqual(game.CoverImage, origImage); Assert.AreNotEqual(game.BackgroundImage, origBackground); var dbFiles = Directory.GetFiles(db.GetFileStoragePath(game.Id)); Assert.AreEqual(3, dbFiles.Count()); CollectionAssert.AreEqual(newIcon.Content, File.ReadAllBytes(db.GetFullFilePath(game.Icon))); CollectionAssert.AreEqual(newImage.Content, File.ReadAllBytes(db.GetFullFilePath(game.CoverImage))); CollectionAssert.AreEqual(newBackground.Content, File.ReadAllBytes(db.GetFullFilePath(game.BackgroundImage))); } }
public void StandardDownloadTest() { var provider = new SteamMetadataProvider( new SteamLibrary(PlayniteTests.GetTestingApi().Object, null)); var data = provider.GetMetadata(new Game() { GameId = "578080" }); Assert.IsNotNull(data.GameInfo); Assert.IsNotNull(data.Icon); Assert.IsNotNull(data.CoverImage); Assert.IsNotNull(data.GameInfo.ReleaseDate); Assert.IsNotNull(data.BackgroundImage); Assert.IsFalse(string.IsNullOrEmpty(data.GameInfo.Description)); CollectionAssert.IsNotEmpty(data.GameInfo.Publishers); CollectionAssert.IsNotEmpty(data.GameInfo.Developers); CollectionAssert.IsNotEmpty(data.GameInfo.Features); CollectionAssert.IsNotEmpty(data.GameInfo.Genres); CollectionAssert.IsNotEmpty(data.GameInfo.Links); CollectionAssert.IsNotEmpty(data.GameInfo.Publishers); }
public void DeleteGameImageCleanupTest() { using (var temp = TempDirectory.Create()) { var db = new GameDatabase(temp.TempPath); db.OpenDatabase(); var game = new Game("Test"); db.Games.Add(game); game.Icon = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); game.BackgroundImage = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); game.CoverImage = db.AddFile(PlayniteTests.GenerateFakeFile(), game.Id); Assert.IsNotEmpty(game.Icon); Assert.IsNotEmpty(game.BackgroundImage); Assert.IsNotEmpty(game.CoverImage); var files = Directory.GetFiles(db.GetFileStoragePath(game.Id)); Assert.AreEqual(3, files.Count()); db.Games.Remove(game); files = Directory.GetFiles(db.GetFileStoragePath(game.Id)); Assert.AreEqual(0, files.Count()); } }
public static SteamLibrary CreateLibrary() { return(new SteamLibrary(PlayniteTests.GetTestingApi().Object, null)); }
public static BethesdaLibrary CreateLibrary() { return(new BethesdaLibrary(PlayniteTests.GetTestingApi().Object)); }
public static OriginLibrary CreateLibrary() { return(new OriginLibrary(PlayniteTests.GetTestingApi().Object)); }
private IgdbMetadataPlugin GetTestPlugin() { return(new IgdbMetadataPlugin( PlayniteTests.GetTestingApi().Object, new IgdbServiceClient(Version.Parse("1.0.0.0"), "http://localhost:5000/"))); }
public void Migration1toCurrentTest() { var path = Path.Combine(PlayniteTests.TempPath, "migration_1_Current.db"); FileSystem.DeleteFile(path); var emulators = new List <Playnite.Models.Old1.Emulator>() { new Playnite.Models.Old1.Emulator("TestEmu") { Arguments = "Test Arguments", Executable = "Test Executable", ImageExtensions = new List <string>() { ".ext1", ".ext2" }, Platforms = new List <int>() { 1, 2 }, WorkingDirectory = "Test Directory" }, new Playnite.Models.Old1.Emulator("TestEmu2") { Arguments = "Test Arguments2", Executable = "Test Executable2", ImageExtensions = new List <string>() { ".ext3", ".ext4" }, Platforms = new List <int>() { 3 }, WorkingDirectory = "Test Directory2" } }; var platforms = new List <Playnite.Models.Old1.Platform>() { new Playnite.Models.Old1.Platform("TestPlat1"), new Playnite.Models.Old1.Platform("TestPlat2") }; using (var database = new LiteDatabase(path)) { database.Engine.UserVersion = 1; var emuCol = database.GetCollection <Playnite.Models.Old1.Emulator>("emulators"); emuCol.InsertBulk(emulators); var platCol = database.GetCollection <Playnite.Models.Old1.Platform>("platforms"); platCol.InsertBulk(platforms); var gamesCol = database.GetCollection <Playnite.Models.Old1.Game>("games"); var games = new List <Playnite.Models.Old1.Game>() { new Playnite.Models.Old1.Game() { Provider = Provider.Custom, ProviderId = "TestId1", PlatformId = 1, Name = "Test Name 1", PlayTask = new Playnite.Models.Old1.GameTask() { Type = GameTaskType.Emulator, EmulatorId = emuCol.FindAll().First().Id }, OtherTasks = new ObservableCollection <Playnite.Models.Old1.GameTask>() { new Playnite.Models.Old1.GameTask() { Type = GameTaskType.Emulator, EmulatorId = emuCol.FindAll().First().Id } } }, new Playnite.Models.Old1.Game() { Provider = Provider.Custom, ProviderId = "TestId2", PlatformId = null, Name = "Test Name 2", PlayTask = new Playnite.Models.Old1.GameTask() { Type = GameTaskType.Emulator, EmulatorId = 0 }, OtherTasks = new ObservableCollection <Playnite.Models.Old1.GameTask>() { new Playnite.Models.Old1.GameTask() { Type = GameTaskType.Emulator, EmulatorId = 0 } } } }; gamesCol.InsertBulk(games); var genericCollection = database.GetCollection("games"); foreach (var game in genericCollection.FindAll().ToList()) { game.AsDocument["_type"] = "Playnite.Models.Game, Playnite"; genericCollection.Update(game.AsDocument); } var file = PlayniteTests.CreateFakeFile(); database.FileStorage.Upload(file.Name, file.Path); file = PlayniteTests.CreateFakeFile(); database.FileStorage.Upload(file.Name, file.Path); } GameDatabase.MigrateDatabase(path); var db = new GameDatabase(null, path); using (db.OpenDatabase()) { var plats = db.PlatformsCollection.FindAll().ToList(); Assert.IsNotNull(plats[0].Id); Assert.IsNotNull(plats[1].Id); var emus = db.EmulatorsCollection.FindAll().ToList(); Assert.AreEqual(2, emus.Count()); Assert.AreEqual(plats[0].Id, emus[0].Profiles[0].Platforms[0]); Assert.AreEqual(plats[1].Id, emus[0].Profiles[0].Platforms[1]); CollectionAssert.IsEmpty(emus[1].Profiles[0].Platforms); Assert.IsNotNull(emus[0].Id); Assert.IsNotNull(emus[1].Id); var emu = emus.First(); var emuConf = emu.Profiles.First(); Assert.AreEqual(1, emu.Profiles.Count); Assert.IsNotNull(emu.Profiles); Assert.AreEqual("Test Arguments", emuConf.Arguments); Assert.AreEqual("Test Executable", emuConf.Executable); Assert.AreEqual("Test Directory", emuConf.WorkingDirectory); Assert.AreEqual(2, emuConf.Platforms.Count); Assert.AreEqual(2, emuConf.ImageExtensions.Count); Assert.AreEqual("ext1", emuConf.ImageExtensions[0]); Assert.AreEqual("ext2", emuConf.ImageExtensions[1]); var games = db.GamesCollection.FindAll().ToList(); var game = games[0]; Assert.AreEqual(plats[0].Id, game.PlatformId); Assert.AreEqual(emu.Profiles.First().Id, game.PlayTask.EmulatorProfileId); Assert.AreEqual(emu.Id, game.PlayTask.EmulatorId); Assert.AreEqual(emu.Profiles.First().Id, game.OtherTasks[0].EmulatorProfileId); Assert.AreEqual(emu.Id, game.OtherTasks[0].EmulatorId); Assert.IsNull(games[1].PlatformId); Assert.IsNull(games[1].PlayTask.EmulatorId); Assert.IsNull(games[1].PlayTask.EmulatorProfileId); Assert.IsNull(games[1].OtherTasks[0].EmulatorId); Assert.IsNull(games[1].OtherTasks[0].EmulatorProfileId); var files = db.Database.FileStorage.FindAll().ToList(); Assert.AreEqual(2, files.Count); foreach (var file in files) { Assert.IsTrue(file.Metadata.ContainsKey("checksum")); Assert.IsFalse(string.IsNullOrEmpty(file.Metadata["checksum"].AsString)); } } }
public static TwitchLibrary CreateLibrary() { return(new TwitchLibrary(PlayniteTests.GetTestingApi().Object)); }
public static HumbleLibrary CreateLibrary() { return(new HumbleLibrary(PlayniteTests.GetTestingApi().Object)); }
public static BattleNetLibrary CreateLibrary() { return(new BattleNetLibrary(PlayniteTests.GetTestingApi().Object)); }
public static ExoDosLibrary CreateLibrary() { return(new ExoDosLibrary(PlayniteTests.GetTestingApi().Object)); }