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")); }
public void TestCreation() { if (File.Exists("test.omod")) { File.Delete("test.omod"); } Directory.CreateDirectory(Path.Combine(Framework.Settings.TempPath, "text_files")); var file1 = Path.Combine(Framework.Settings.TempPath, "file.txt"); var file2 = Path.Combine(Framework.Settings.TempPath, "file2.txt"); var file3 = Path.Combine(Framework.Settings.TempPath, "text_files", "file3.txt"); var text1 = "This is some text"; var text2 = "This is more text"; var text3 = "MORE TEXT !!!!!!!!"; File.WriteAllText(file1, text1); File.WriteAllText(file2, text2); File.WriteAllText(file3, text3); var ops = new OMODCreationOptions { Name = "Test OMOD", Author = "erri120", Email = "*****@*****.**", Website = "https://github.com/erri120", Description = "The best OMOD you can find on the internet!", Image = "", MajorVersion = 1, MinorVersion = 0, BuildVersion = 0, CompressionType = CompressionType.SevenZip, DataFileCompressionLevel = CompressionLevel.Medium, OMODCompressionLevel = CompressionLevel.Medium, ESPs = new List <string>(0), ESPPaths = new List <string>(0), DataFiles = new List <string> { file1, file2, file3 }, DataFilePaths = new List <string> { "file.txt", "file2.txt", "text_files\\file3.txt" }, Readme = "", Script = "" }; OMOD.CreateOMOD(ops, "test.omod"); Assert.IsTrue(File.Exists("test.omod")); var omod = new OMOD("test.omod"); Assert.IsNotNull(omod); Assert.IsTrue(omod.ModName == ops.Name); Assert.IsTrue(omod.Author == ops.Author); Assert.IsTrue(omod.AllPlugins.Count == ops.ESPs.Count); Assert.IsTrue(omod.AllDataFiles.Count == ops.DataFiles.Count); var data = omod.GetDataFiles(); Directory.EnumerateFiles(data, "*", SearchOption.AllDirectories).Do(file => { var contents = File.ReadAllText(file); Assert.IsTrue(contents == text1 || contents == text2 || contents == text3); }); }