Example #1
0
        public void DefragementArchiveTest()
        {
            var ppx = TestCommon.GeneratePPX();

            ExtendedArchiveAppender appender = new ExtendedArchiveAppender(ppx);

            AssertCRC(ppx);

            Assert.IsFalse(appender.WastedSpaceExists);

            appender.Defragment();

            var file3 = appender.BaseArchive.RawFiles.Find(x => x.Name == "test00");

            appender.FilesToRemove.Add(file3);

            appender.Write();

            Assert.IsTrue(appender.WastedSpaceExists);

            AssertCRC(appender.BaseArchive);

            appender.Defragment();

            Assert.IsFalse(appender.WastedSpaceExists);

            AssertCRC(appender.BaseArchive);

            TestCommon.TeardownPPX(ppx);
        }
Example #2
0
        public void AppendMetadataTest()
        {
            var ppx = TestCommon.GeneratePPX();

            ExtendedArchiveAppender appender = new ExtendedArchiveAppender(ppx);

            appender.Name = "test-appended";

            var file1 = new Subfile(
                new MemorySource(TestData),
                "test3-2",
                "t",
                ArchiveFileType.Raw);

            var file2 = new Subfile(
                new MemorySource(Encoding.UTF8.GetBytes("short data")),
                "test4-2",
                "t",
                ArchiveFileType.Raw);

            var file3 = appender.BaseArchive.RawFiles.Find(x => x.Name == "test00");

            appender.FilesToAdd.Add(file1);
            appender.FilesToAdd.Add(file2);

            appender.FilesToRemove.Add(file3);

            appender.Write();


            ppx = new ExtendedArchive(ppx.Filename);

            Assert.AreEqual("test-appended", ppx.Title);

            Assert.AreEqual(33, ppx.Files.Count);

            Assert.IsTrue(ppx.Files.Any(x => x.Name == file1.Name));
            Assert.IsTrue(ppx.Files.Any(x => x.Name == file2.Name));

            Assert.IsFalse(ppx.Files.Any(x => x.Name == file3.Name));

            AssertCRC(ppx);

            TestCommon.TeardownPPX(ppx);
        }
Example #3
0
        public ppxEditor(ExtendedArchive archive)
        {
            if (ExternalTools == null && Gui.Config != null)
            {
                ExternalTools = new Dictionary <string, List <ExternalTool> >();

                foreach (SettingsPropertyValue value in Gui.Config.PropertyValues)
                {
                    if (value.PropertyValue.GetType() == typeof(ExternalTool))
                    {
                        ExternalTool tool = (ExternalTool)value.PropertyValue;
                        tool = RegisterExternalTool(tool, false);
                        string toolVar = Gui.Scripting.GetNextVariable("externalTool");
                        Gui.Scripting.Variables.Add(toolVar, tool);
                    }
                }
            }

            Appender = new ExtendedArchiveAppender(archive);
        }