public void FindPAKReferenceInVoicepackAndChangeIntegrationTest()
        {
            VoicepackExtended pack = new VoicepackExtended();

            pack.LoadFromFile(TestData.VoicepackTheOffice);

            //Just find
            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, "HesDead.ogg_System.Byte", null));

            //Find and replace
            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, "HesDead.ogg_System.Byte", "newstring"));

            //Find replaced string, should not be found
            Assert.IsFalse(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, "HesDead.ogg_System.Byte", null));

            //Find new string, should be found
            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, "newstring", null));

            //manually check the right place of the string
            //should be in HEADSHOT achievement, which is in place 0
            //var test = pack.Voicepack.groupManager.achievementList["HEAD_SHOT"].dynamicSounds.sounds[1].pakSoundFile;
            //Console.WriteLine(test);
            //		pakSoundFile	"HesDead.ogg_System.Byte"	string HEADSHOT ix 0



            //		pakSoundPath	"RanOver.ogg_System.Byte"	string ROAD_KILL ix 3
        }
        public void FindAndReplacePAKBackupImage()
        {
            pack.Voicepack.groupManager.pakBackgroundImage = findMe;

            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, findMe, replaceWith));
            Assert.AreEqual(pack.Voicepack.groupManager.pakBackgroundImage, replaceWith);
        }
        public void RemoveComponentDataItemWithoutReference()
        {
            pack.Voicepack.componentData.Add("key", new ComponentData());

            VoicepackCleaner.RemoveUnusedComponentData(pack);

            Assert.IsFalse(pack.Voicepack.componentData.ContainsKey("key"));
        }
        public void FindAndReplaceOldStyleOneSoundPath()
        {
            pack.Voicepack.groupManager.achievementList[key] = new AchievementOptions()
            {
                pakSoundPath = findMe
            };

            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, findMe, replaceWith));
            Assert.AreEqual(pack.Voicepack.groupManager.achievementList[key].pakSoundPath, replaceWith);
        }
        public void DontRemoveComponentDataItemWithReferenceToBackupImage()
        {
            pack.Voicepack.componentData = new XmlDictionary <string, ComponentData>();
            var pakBackgroundImage = "pakBackGroundImage";

            pack.Voicepack.groupManager.pakBackgroundImage = pakBackgroundImage;
            pack.Voicepack.componentData.Add(pakBackgroundImage, new ComponentData());

            VoicepackCleaner.RemoveUnusedComponentData(pack);
            Assert.IsTrue(pack.Voicepack.componentData.ContainsKey(pakBackgroundImage));
        }
        public void DontRemoveComponentDataItemWithReferenceToNewStyleDynamicSoundAchievment()
        {
            var dynamicSound = "dynamicSound";

            pack.Voicepack.groupManager.achievementList["achievementName2"] =
                VoicepackSampleCreator.CreateDynamicSoundsAchievement(new string[2, 2] {
                { "", "" }, { dynamicSound, "" }
            });
            pack.Voicepack.componentData.Add(dynamicSound, new ComponentData());

            VoicepackCleaner.RemoveUnusedComponentData(pack);

            Assert.IsTrue(pack.Voicepack.componentData.ContainsKey(dynamicSound));
        }
        public void DontRemoveComponentDataItemWithReferenceToOldStyleOneSoundAchievment()
        {
            var oneSound = "oneSound";

            pack.Voicepack.groupManager.achievementList["achievementName1"] = new AchievementOptions()
            {
                pakSoundPath = oneSound
            };
            pack.Voicepack.componentData.Add(oneSound, new ComponentData());

            VoicepackCleaner.RemoveUnusedComponentData(pack);

            Assert.IsTrue(pack.Voicepack.componentData.ContainsKey(oneSound));
        }
        public void ChangeComponentDataKeysTest()
        {
            List <string> oldKeys = new List <string>();

            oldKeys.Add("oldKey");

            VoicepackExtended pack = new VoicepackExtended();

            pack.InitializeToDefault();
            pack.Voicepack.componentData.Add("oldKey", new ComponentData());

            VoicepackCleaner.ChangeComponentDataKeys(pack, oldKeys, "prefix");

            Assert.IsTrue(pack.Voicepack.componentData.ContainsKey("prefix:oldKey"));
            Assert.IsFalse(pack.Voicepack.componentData.ContainsKey("oldKey"));
        }
        public void resolvePAKBackgroundImageClash()
        {
            var pakBackgroundImageKey = "pakBackgroundImageKey";
            var pack1FileName         = "pack1FileName";

            pack1.Voicepack.groupManager.pakBackgroundImage = pakBackgroundImageKey;
            pack1.Voicepack.componentData.Add(pakBackgroundImageKey, new ComponentData());

            pack2.Voicepack.groupManager.pakBackgroundImage = pakBackgroundImageKey;
            pack2.Voicepack.componentData.Add(pakBackgroundImageKey, new ComponentData());

            var result = new List <string>();

            result = VoicepackCleaner.ResolveComponentDataKeyClashes(pack1, pack2);

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(pakBackgroundImageKey, result[0]);
        }
        public void FindAndReplaceNewStyleDynamicSounsPath()
        {
            var findMe0      = findMe + "0";
            var findMe1      = findMe + "1";
            var replaceWith1 = replaceWith + "1";
            var replaceWith0 = replaceWith + "0";

            pack.Voicepack.groupManager.achievementList[key] =
                VoicepackSampleCreator.CreateDynamicSoundsAchievement(new string[2, 2] {
                { findMe0, "" }, { findMe1, "" }
            });

            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, findMe1, replaceWith1));
            Assert.IsFalse(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, findMe1));
            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, replaceWith1));

            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, findMe0, replaceWith0));
            Assert.IsFalse(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, findMe0));
            Assert.IsTrue(VoicepackCleaner.FindPAKreferenceInVoicepackAndReplace(pack, replaceWith0));
        }