[TestCase("206102", GameVersion.RS2012)] // free ODLC Holiday Song Pack - no messagebox
        public void TestRepackAppId(string appId, GameVersion gameVersion)
        {
            // start fresh
            TestSettings.Instance.CopyResources();
            if (!TestSettings.Instance.ArchivePaths.Any())
            {
                Assert.Fail("TestSettings CopyResources Failed ...");
            }

            packerUnpacker.Version = gameVersion;
            packerUnpacker.AppId   = appId;

            foreach (var archivePath in TestSettings.Instance.ArchivePaths)
            {
                var platform = archivePath.GetPlatform();
                if (gameVersion != platform.version)
                {
                    continue;
                }

                // console package does not have an AppId
                if (platform.IsConsole)
                {
                    // NOTE: when unit test is finished, double click the test result to see this message
                    Debug.WriteLine("---------------------------------");
                    Debug.WriteLine("TestRepackAppId skipped console files: " + Path.GetFileName(archivePath));
                    Debug.WriteLine("---------------------------------");
                    continue;
                }

                // test AppId validation method
                packerUnpacker.SelectComboAppId(packerUnpacker.AppId);

                // call background worker method from unit test to avoid threading issues
                packerUnpacker.UpdateAppId(null, new DoWorkEventArgs(new string[] { archivePath }));

                if (!File.Exists(archivePath))
                {
                    Assert.Fail("RepackAppId Method Failed: " + Path.GetFileName(archivePath));
                }

                if (gameVersion == GameVersion.RS2012)
                {
                    continue;
                }

                // check if RepackAppId wrote the new AppId (RS2014 ONLY)
                using (var psarcLoader = new PsarcLoader(archivePath, true))
                {
                    var entryAppId = psarcLoader.ExtractAppId();
                    Assert.AreEqual(packerUnpacker.AppId, entryAppId);
                }
            }
        }