Ejemplo n.º 1
0
        //[TestMethod]
        public void TestCSharpScript()
        {
            Files.Do(f =>
            {
                var omod = new OMOD(f.FileName);

                Assert.IsNotNull(omod);

                var scriptFunctions = new ScriptFunctions();

                ScriptRunner.RunScript(omod, scriptFunctions);
            });
        }
Ejemplo n.º 2
0
        public void TestOBMMScript()
        {
            Files.Do(f =>
            {
                var omod = new OMOD(f.FileName);

                Assert.IsNotNull(omod);

                var data    = omod.GetDataFiles();
                var plugins = omod.GetPlugins();

                var scriptFunctions = new ScriptFunctions();

                var srd = ScriptRunner.RunScript(omod, scriptFunctions, data, plugins);

                Assert.IsNotNull(srd);
                Assert.IsTrue(!srd.CancelInstall);

                srd.Pretty(omod, data, plugins);

                Assert.IsNotNull(srd.InstallFiles);
            });
        }
Ejemplo n.º 3
0
        public void EndToEnd()
        {
            // Creation

            var ops = new OMODCreationOptions
            {
                Name                     = "I love, love... moist towelettes",
                Author                   = "erri120",
                Email                    = "*****@*****.**",
                Website                  = "https://github.com/erri120",
                Description              = "The best OMOD you can find on the internet!",
                Image                    = "",
                MajorVersion             = 6,
                MinorVersion             = 6,
                BuildVersion             = 6,
                CompressionType          = CompressionType.SevenZip,
                DataFileCompressionLevel = CompressionLevel.High,
                OMODCompressionLevel     = CompressionLevel.Medium,
                ESPs                     = new List <string>(0),
                ESPPaths                 = new List <string>(0),
                DataFiles                = ModFiles,
                DataFilePaths            = FolderStructure,
                Readme                   = Readme,
                Script                   = Script
            };

            OMOD.CreateOMOD(ops, OMODFile);

            Assert.IsTrue(File.Exists(OMODFile));

            // Test parsing

            var omod = new OMOD(OMODFile);

            Assert.IsNotNull(omod);
            Assert.IsTrue(CompareCreationToFile(ref ops, ref omod));

            // Test extraction

            var data = omod.GetDataFiles();

            var fList1 = new List <FileInfo>();
            var fList2 = new List <FileInfo>();

            Directory.GetFiles("files", "*", SearchOption.AllDirectories).Do(f =>
            {
                fList1.Add(new FileInfo(f));
            });

            Directory.GetFiles(data, "*", SearchOption.AllDirectories).Do(f =>
            {
                fList2.Add(new FileInfo(f));
            });

            Assert.IsTrue(fList1.Count == fList2.Count);

            for (var i = 0; i < fList1.Count; i++)
            {
                var f1 = fList1[i];
                var f2 = fList2[i];

                Assert.IsTrue(Equals(f1, f2, Path.GetFullPath("files"), data));
            }

            // Test scripting

            var scriptFunctions = new ScriptFunctions();

            var srd = ScriptRunner.RunScript(omod, scriptFunctions, data);

            Assert.IsNotNull(srd);
            Assert.IsTrue(!srd.CancelInstall);
            Assert.IsTrue(srd.CopyDataFiles.Count == 1 && srd.CopyDataFiles.TryGetValue(new ScriptCopyDataFile("A\\A.txt", "meshes\\a.txt"), out _));
            Assert.IsTrue(srd.InstallData.Contains("something.txt"));
        }