Exemplo n.º 1
0
        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)));
            }
        }
Exemplo n.º 2
0
        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"));
        }
Exemplo n.º 4
0
 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);
        }
Exemplo n.º 7
0
        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());
            }
        }
Exemplo n.º 8
0
 public static SteamLibrary CreateLibrary()
 {
     return(new SteamLibrary(PlayniteTests.GetTestingApi().Object, null));
 }
Exemplo n.º 9
0
 public static BethesdaLibrary CreateLibrary()
 {
     return(new BethesdaLibrary(PlayniteTests.GetTestingApi().Object));
 }
Exemplo n.º 10
0
 public static OriginLibrary CreateLibrary()
 {
     return(new OriginLibrary(PlayniteTests.GetTestingApi().Object));
 }
Exemplo n.º 11
0
 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));
                }
            }
        }
Exemplo n.º 13
0
 public static TwitchLibrary CreateLibrary()
 {
     return(new TwitchLibrary(PlayniteTests.GetTestingApi().Object));
 }
Exemplo n.º 14
0
 public static HumbleLibrary CreateLibrary()
 {
     return(new HumbleLibrary(PlayniteTests.GetTestingApi().Object));
 }
 public static BattleNetLibrary CreateLibrary()
 {
     return(new BattleNetLibrary(PlayniteTests.GetTestingApi().Object));
 }
Exemplo n.º 16
0
 public static ExoDosLibrary CreateLibrary()
 {
     return(new ExoDosLibrary(PlayniteTests.GetTestingApi().Object));
 }