public void TestPackSong()
        {
            if (unpackedDirs == null)
            {
                TestSettings.Instance.UnpackResources();
                if (!TestSettings.Instance.UnpackedDirs.Any())
                {
                    Assert.Fail("TestSettings UnpackResources Failed ...");
                }

                unpackedDirs = TestSettings.Instance.UnpackedDirs;
            }

            archivePaths = new List <string>();
            foreach (var unpackedDir in unpackedDirs)
            {
                Platform platform = unpackedDir.GetPlatform();
                if (platform == null || platform.platform == GamePlatform.None || platform.version == GameVersion.None)
                {
                    Assert.Fail("GetPlatform Failed: " + Path.GetFileName(unpackedDir));
                }

                var expArchiveName = Packer.RecycleUnpackedDir(unpackedDir);
                if (String.IsNullOrEmpty(expArchiveName))
                {
                    Assert.Fail("RecycleArtifactsFolder Method Failed ...");
                }

                var actArchivePath = packerUnpacker.PackSong(unpackedDir, expArchiveName);

                if (!File.Exists(actArchivePath))
                {
                    Assert.Fail("Pack Method Failed: " + Path.GetFileName(unpackedDir));
                }

                Assert.AreEqual(expArchiveName, actArchivePath);

                archivePaths.Add(actArchivePath);
            }

            Assert.AreEqual(archivePaths.Count, unpackedDirs.Count);
        }