Exemple #1
0
 public void Write(Stream fs, bool comFiles)
 {
     if (comFiles)
     {
         fs.WriteByte(139);
     }
     else
     {
         fs.WriteByte(138);
     }
     WriteFiles.WriteDeprecatedString(fs, 1, Path);
     if (DeleteFile)
     {
         WriteFiles.WriteBool(fs, 2, val: true);
     }
     if (UnNGENFile)
     {
         WriteFiles.WriteBool(fs, 3, val: true);
         WriteFiles.WriteInt(fs, 4, (int)CPUVersion);
         WriteFiles.WriteInt(fs, 5, (int)FrameworkVersion);
     }
     if (RegisterCOMDll != 0)
     {
         WriteFiles.WriteInt(fs, 6, (int)RegisterCOMDll);
     }
     fs.WriteByte(154);
 }
Exemple #2
0
            public void WriteFilesSetsMetadata(string key, string expectedEnding)
            {
                // Given
                Engine engine = new Engine();

                engine.RootFolder   = TestContext.CurrentContext.TestDirectory;
                engine.OutputFolder = @"TestFiles\Output\";
                engine.InitialMetadata[Keys.RelativeFilePath] = @"Subfolder/write-test.abc";
                Pipeline          pipeline = new Pipeline("Pipeline", null);
                IExecutionContext context  = new ExecutionContext(engine, pipeline);

                IDocument[] inputs     = { context.GetDocument("Test") };
                WriteFiles  writeFiles = new WriteFiles("txt");

                // When
                IDocument output = writeFiles.Execute(inputs, context).First();

                foreach (IDocument document in inputs)
                {
                    ((IDisposable)document).Dispose();
                }

                // Then
                Assert.That(output.Metadata[key], Does.EndWith(expectedEnding));
                ((IDisposable)output).Dispose();
            }
Exemple #3
0
        public void WriteFilesSetsMetadata(string key, string expectedEnding)
        {
            // Given
            Engine engine = new Engine();

            engine.Trace.AddListener(new TestTraceListener());
            engine.OutputFolder = @"TestFiles\Output\";
            engine.Metadata[Keys.RelativeFilePath] = @"Subfolder/write-test.abc";
            Pipeline pipeline = new Pipeline("Pipeline", engine, null);

            IDocument[]       inputs     = { new Document(engine, pipeline).Clone("Test") };
            IExecutionContext context    = new ExecutionContext(engine, pipeline);
            WriteFiles        writeFiles = new WriteFiles("txt");

            // When
            IDocument output = writeFiles.Execute(inputs, context).First();

            foreach (IDocument document in inputs)
            {
                ((IDisposable)document).Dispose();
            }

            // Then
            Assert.That(output.Metadata[key], Is.StringEnding(expectedEnding));
            ((IDisposable)output).Dispose();
        }
Exemple #4
0
 private void Save(string filename)
 {
     using (FileStream fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write))
     {
         WriteFiles.WriteHeader(fileStream, "AUIF");
         UpdateStepOn = UpdateStepOn.Nothing;
         WriteFiles.WriteDateTime(fileStream, 1, LastCheckedForUpdate);
         WriteFiles.WriteInt(fileStream, 2, (int)UpdateStepOn);
         WriteFiles.WriteInt(fileStream, 3, (int)AutoUpdaterStatus);
         if (!string.IsNullOrEmpty(UpdateVersion))
         {
             WriteFiles.WriteString(fileStream, 4, UpdateVersion);
         }
         if (!string.IsNullOrEmpty(ChangesInLatestVersion))
         {
             WriteFiles.WriteString(fileStream, 5, ChangesInLatestVersion);
             WriteFiles.WriteBool(fileStream, 6, ChangesIsRTF);
         }
         if (!string.IsNullOrEmpty(ErrorTitle))
         {
             WriteFiles.WriteString(fileStream, 7, ErrorTitle);
         }
         if (!string.IsNullOrEmpty(ErrorMessage))
         {
             WriteFiles.WriteString(fileStream, 8, ErrorMessage);
         }
         fileStream.WriteByte(byte.MaxValue);
     }
 }
Exemple #5
0
 public static void WriteRollbackFiles(string fileName, List <FileFolder> rollbackList)
 {
     if (rollbackList.Count != 0)
     {
         using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
         {
             fileStream.Write(Encoding.UTF8.GetBytes("IURUFV1"), 0, 7);
             foreach (FileFolder rollback in rollbackList)
             {
                 if (rollback.isFolder)
                 {
                     if (rollback.deleteFolder)
                     {
                         WriteFiles.WriteString(fileStream, 4, rollback.Path);
                     }
                     else
                     {
                         WriteFiles.WriteString(fileStream, 6, rollback.Path);
                     }
                 }
                 else
                 {
                     WriteFiles.WriteString(fileStream, 2, rollback.Path);
                 }
             }
             fileStream.WriteByte(byte.MaxValue);
         }
     }
 }
Exemple #6
0
        public void UpdatePmCheckTime()
        {
            DateTime now = DateTime.Now;

            this.pmCheckSetting.dtLastTimeCheck = now;
            long lngret = WriteFiles.IniWriteValue(this.strIniFilePath, "PM_CHECK_SETTING", "LastDoneTime", now.ToString());
        }
Exemple #7
0
        public void ExtensionWithoutDotWritesFile()
        {
            // Given
            Engine engine = new Engine();

            engine.Trace.AddListener(new TestTraceListener());
            engine.OutputFolder = @"TestFiles\Output\";
            engine.Metadata[Keys.RelativeFilePath] = @"Subfolder/write-test.abc";
            Pipeline pipeline = new Pipeline("Pipeline", engine, null);

            IDocument[]       inputs     = { new Document(engine, pipeline).Clone("Test") };
            IExecutionContext context    = new ExecutionContext(engine, pipeline);
            WriteFiles        writeFiles = new WriteFiles("txt");

            // When
            IEnumerable <IDocument> outputs = writeFiles.Execute(inputs, context).ToList();

            foreach (IDocument document in inputs.Concat(outputs))
            {
                ((IDisposable)document).Dispose();
            }

            // Then
            Assert.IsTrue(File.Exists(@"TestFiles\Output\Subfolder\write-test.txt"));
            Assert.AreEqual("Test", File.ReadAllText(@"TestFiles\Output\Subfolder\write-test.txt"));
        }
            public async Task IgnoresEmptyDocuments()
            {
                // Given
                MemoryStream emptyStream = new MemoryStream(new byte[] { });

                TestDocument[] inputs =
                {
                    new TestDocument(
                        new FilePath("Subfolder/write-test"),
                        "Test"),
                    new TestDocument(
                        new FilePath("Subfolder/empty-test"),
                        string.Empty),
                    new TestDocument(
                        new FilePath("Subfolder/stream-test"),
                        emptyStream)
                };
                TestExecutionContext context    = GetExecutionContext(inputs);
                WriteFiles           writeFiles = new WriteFiles();

                // When
                IReadOnlyList <TestDocument> results = await ExecuteAsync(context, writeFiles);

                // Then
                results.Count.ShouldBe(3);
                context.FileSystem.GetOutputFile("Subfolder/write-test").Exists.ShouldBeTrue();
                context.FileSystem.GetOutputFile("output/Subfolder/empty-test").Exists.ShouldBeFalse();
                context.FileSystem.GetOutputFile("output/Subfolder/stream-test").Exists.ShouldBeFalse();
            }
Exemple #9
0
            public void ExtensionWithoutDotWritesFile()
            {
                // Given
                Engine engine = new Engine();

                engine.RootFolder   = TestContext.CurrentContext.TestDirectory;
                engine.OutputFolder = @"TestFiles\Output\";
                engine.InitialMetadata[Keys.RelativeFilePath] = @"Subfolder/write-test.abc";
                Pipeline          pipeline = new Pipeline("Pipeline", null);
                IExecutionContext context  = new ExecutionContext(engine, pipeline);

                IDocument[] inputs     = { context.GetDocument("Test") };
                WriteFiles  writeFiles = new WriteFiles("txt");

                // When
                IEnumerable <IDocument> outputs = writeFiles.Execute(inputs, context).ToList();

                foreach (IDocument document in inputs.Concat(outputs))
                {
                    ((IDisposable)document).Dispose();
                }

                // Then
                Assert.IsTrue(File.Exists(Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestFiles\Output\Subfolder\write-test.txt")));
                Assert.AreEqual("Test", File.ReadAllText(Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestFiles\Output\Subfolder\write-test.txt")));
            }
        public static void WriteRollbackCOM(string fileName, List <UninstallFileInfo> rollbackList)
        {
            //if the list is empty, bail out
            if (rollbackList.Count == 0)
            {
                return;
            }

            using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
            {
                // file-identification data
                fs.Write(Encoding.UTF8.GetBytes("IURUCV1"), 0, 7);


                foreach (UninstallFileInfo file in rollbackList)
                {
                    fs.WriteByte(0x8B); //Beginning of the file information

                    // write the filename (absolute)
                    WriteFiles.WriteString(fs, 0x01, file.Path);

                    WriteFiles.WriteInt(fs, 0x02, (int)file.RegisterCOMDll);

                    fs.WriteByte(0x9B); //End of the file information
                }

                fs.WriteByte(0xFF);
            }
        }
Exemple #11
0
 public static void SaveWorker(List <Worker> workers, string path)
 {
     string[] output = new string[workers.Count * 2];
     for (int i = 0; i < workers.Count; i++)
     {
         Worker worker = workers[i];
         output[i * 2 + 0] = $"[{i}]";
         output[i * 2 + 1] = $"Name={worker.Name}";
     }
     WriteFiles.Write(output, path);
 }
Exemple #12
0
 public static void SaveStation(List <Station> stations, string path)
 {
     string[] output = new string[stations.Count * 2];
     for (int i = 0; i < stations.Count; i++)
     {
         Station station = stations[i];
         output[i * 2 + 0] = $"[{i}]";
         output[i * 2 + 1] = $"Name={station.Name}";
     }
     WriteFiles.Write(output, path);
 }
Exemple #13
0
            public void ShouldReturnOriginalDocumentForFailedPredicate()
            {
                // Given
                IDocument[] inputs     = new[] { Context.GetDocument(Context.GetContentStream("Test")) };
                WriteFiles  writeFiles = new WriteFiles((x, y) => null).Where((x, y) => false);

                // When
                IDocument output = writeFiles.Execute(inputs, Context).ToList().First();

                // Then
                Assert.AreEqual("Test", output.Content);
            }
            public async Task DocumentsWithSameOutputGeneratesWarning()
            {
                // Given
                TestDocument[] inputs = new[] { "A", "B", "C", "D", "E" }
                .Select(x => new TestDocument(new FilePath("output.txt"), x))
                .ToArray();
                TestExecutionContext context    = GetExecutionContext(inputs);
                WriteFiles           writeFiles = new WriteFiles();

                // When, Then
                await Should.ThrowAsync <Exception>(async() => await ExecuteAsync(context, writeFiles));
            }
Exemple #15
0
            public void OutputDocumentContainsSameContent()
            {
                // Given
                IDocument[] inputs     = new[] { Context.GetDocument(Context.GetContentStream("Test")) };
                WriteFiles  writeFiles = new WriteFiles((x, y) => null);

                // When
                IDocument output = writeFiles.Execute(inputs, Context).ToList().First();

                // Then
                Assert.AreEqual("Test", output.Content);
            }
Exemple #16
0
 public static void WebsiteSave(Array_Website websites, string path)
 {
     string[] output = new string[websites.GetTotal() * 3];
     for (int i = 0; i < websites.GetTotal(); i++)
     {
         Website tem = websites.GetArray()[i];
         output[i * 3 + 0] = "[" + tem.Name + "]";
         output[i * 3 + 1] = "Name=" + tem.Name;
         output[i * 3 + 2] = "URL=" + tem.URL;
     }
     WriteFiles.Write(output, path);
 }
            public async Task ShouldReturnOriginalDocumentForFailedPredicate()
            {
                // Given
                TestDocument         input      = new TestDocument("Test");
                TestExecutionContext context    = GetExecutionContext(input.Yield());
                WriteFiles           writeFiles = new WriteFiles().Where(false);

                // When
                TestDocument result = await ExecuteAsync(context, writeFiles).SingleAsync();

                // Then
                result.ShouldBe(input);
            }
            public async Task OutputDocumentContainsSameContent()
            {
                // Given
                TestDocument         input      = new TestDocument("Test");
                TestExecutionContext context    = GetExecutionContext(input.Yield());
                WriteFiles           writeFiles = new WriteFiles();

                // When
                TestDocument result = await ExecuteAsync(context, writeFiles).SingleAsync();

                // Then
                result.Content.ShouldBe("Test");
            }
Exemple #19
0
            public void ShouldReturnNullBasePathsForDotFiles()
            {
                // Given
                IDocument[] inputs     = new[] { Context.GetDocument(Context.GetContentStream("Test")) };
                WriteFiles  writeFiles = new WriteFiles((x, y) => ".dotfile");

                // When
                IDocument document = writeFiles.Execute(inputs, Context).ToList().First();

                // Then
                Assert.IsNull(document[Keys.DestinationFileBase]);
                Assert.IsNull(document[Keys.DestinationFilePathBase]);
                Assert.IsNull(document[Keys.RelativeFilePathBase]);
            }
Exemple #20
0
        public static void PlayerItemSave(Array_Item items, string path)
        {
            string[] output = new string[items.GetTotal() * 3];
            int      i      = 0;

            foreach (Item tem in items.GetArray())
            {
                output[i * 3 + 0] = "[" + tem.ID + "]";
                output[i * 3 + 1] = "item_id=" + tem.ID;
                output[i * 3 + 2] = "item_number=" + tem.Number;
                i++;
            }
            WriteFiles.Write(output, path);
        }
Exemple #21
0
        public static void WriteApps(List <App> apps, string path)
        {
            string[] result = new string[apps.Count * 3];
            int      i      = 0;

            foreach (App app in apps)
            {
                result[i * 3]     = "[" + app.Name + "]";
                result[i * 3 + 1] = "name=" + app.Name;
                result[i * 3 + 2] = "path=" + app.Path;
                i++;
            }
            WriteFiles.Write(result, path);
        }
        void Save(string filename)
        {
            using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
            {
                // Write any file-identification data you want to here
                WriteFiles.WriteHeader(fs, "AUIF");

#if CLIENT
                UpdateStepOn = UpdateStepOn.Nothing;
#endif

                // Date last checked for update
                WriteFiles.WriteDateTime(fs, 0x01, LastCheckedForUpdate);

                // update step on
                WriteFiles.WriteInt(fs, 0x02, (int)UpdateStepOn);

#if CLIENT
                // only save the AutoUpdaterStatus when wyUpdate writes the file
                WriteFiles.WriteInt(fs, 0x03, (int)AutoUpdaterStatus);
#endif

                if (!string.IsNullOrEmpty(UpdateVersion))
                {
                    WriteFiles.WriteString(fs, 0x04, UpdateVersion);
                }

                if (!string.IsNullOrEmpty(ChangesInLatestVersion))
                {
                    WriteFiles.WriteString(fs, 0x05, ChangesInLatestVersion);

                    WriteFiles.WriteBool(fs, 0x06, ChangesIsRTF);
                }


#if CLIENT
                if (!string.IsNullOrEmpty(ErrorTitle))
                {
                    WriteFiles.WriteString(fs, 0x07, ErrorTitle);
                }

                if (!string.IsNullOrEmpty(ErrorMessage))
                {
                    WriteFiles.WriteString(fs, 0x08, ErrorMessage);
                }
#endif

                fs.WriteByte(0xFF);
            }
        }
Exemple #23
0
            public void ShouldWriteDotFile()
            {
                // Given
                IDocument[] inputs     = new[] { Context.GetDocument(Context.GetContentStream("Test")) };
                WriteFiles  writeFiles = new WriteFiles((x, y) => ".dotfile");

                // When
                writeFiles.Execute(inputs, Context).ToList();

                // Then
                IFile outputFile = Engine.FileSystem.GetOutputFile(".dotfile");

                Assert.IsTrue(outputFile.Exists);
                Assert.AreEqual("Test", outputFile.ReadAllText());
            }
Exemple #24
0
 public static void WriteRollbackServices(string fileName, List <string> rollbackList)
 {
     if (rollbackList.Count != 0)
     {
         using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
         {
             fileStream.Write(Encoding.UTF8.GetBytes("IURUSV1"), 0, 7);
             foreach (string rollback in rollbackList)
             {
                 WriteFiles.WriteString(fileStream, 1, rollback);
             }
             fileStream.WriteByte(byte.MaxValue);
         }
     }
 }
Exemple #25
0
 public static void WriteRollbackRegistry(string fileName, List <RegChange> rollbackRegistry)
 {
     if (rollbackRegistry.Count != 0)
     {
         using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
         {
             WriteFiles.WriteHeader(fileStream, "IURURV1");
             WriteFiles.WriteInt(fileStream, 1, rollbackRegistry.Count);
             foreach (RegChange item in rollbackRegistry)
             {
                 item.WriteToStream(fileStream, embedBinaryData: true);
             }
             fileStream.WriteByte(byte.MaxValue);
         }
     }
 }
Exemple #26
0
        public static void PlayerEquipmentSave(Array_Equipment equipments, string path)
        {
            string[] output = new string[equipments.GetTotal() * 2];
            int      i      = 0;

            foreach (Equipment tem in equipments.GetArray())
            {
                if (tem != null)
                {
                    output[i * 2 + 0] = "[" + tem.ID + "]";
                    output[i * 2 + 1] = "equipment_id=" + tem.ID;
                    i++;
                }
            }
            WriteFiles.Write(output, path);
        }
Exemple #27
0
 public static void SaveKey(List <Key> keys, string path)
 {
     string[] output = new string[keys.Count * 7];
     for (int i = 0; i < keys.Count; i++)
     {
         Key key = keys[i];
         output[i * 7 + 0] = $"[{i}]";
         output[i * 7 + 1] = $"Text={key.Text}";
         output[i * 7 + 2] = $"Score={key.Score}";
         output[i * 7 + 3] = $"Coefficient_Licensor={key.Coefficient[WorkerType.Licensor].ToString()}";
         output[i * 7 + 4] = $"Coefficient_Operator={key.Coefficient[WorkerType.Operator].ToString()}";
         output[i * 7 + 5] = $"Coefficient_Guardian={key.Coefficient[WorkerType.Guardian].ToString()}";
         output[i * 7 + 6] = $"Coefficient_Principal={key.Coefficient[WorkerType.Principal].ToString()}";
     }
     WriteFiles.Write(output, path);
 }
Exemple #28
0
            public void ShouldSetStringMetadata(string key, string expected)
            {
                // Given
                Engine.Settings[Keys.RelativeFilePath] = new FilePath("Subfolder/write-test.abc");
                IDocument[] inputs     = new[] { Context.GetDocument(Context.GetContentStream("Test")) };
                WriteFiles  writeFiles = new WriteFiles(".txt");

                // When
                IDocument output = writeFiles.Execute(inputs, Context).ToList().First();

                // Then
                object result = output[key];

                Assert.IsInstanceOf <string>(result);
                Assert.AreEqual(expected, result);
            }
Exemple #29
0
            public void ExtensionWithoutDotWritesFiles()
            {
                // Given
                Engine.Settings[Keys.RelativeFilePath] = new FilePath("Subfolder/write-test.abc");
                IDocument[] inputs     = new[] { Context.GetDocument(Context.GetContentStream("Test")) };
                WriteFiles  writeFiles = new WriteFiles("txt");

                // When
                writeFiles.Execute(inputs, Context).ToList();

                // Then
                IFile outputFile = Engine.FileSystem.GetOutputFile("Subfolder/write-test.txt");

                Assert.IsTrue(outputFile.Exists);
                Assert.AreEqual("Test", outputFile.ReadAllText());
            }
Exemple #30
0
            public void ShouldSetDirectoryPathMetadata(string key, string expected)
            {
                // Given
                Engine.InitialMetadata[Keys.RelativeFilePath] = new FilePath("Subfolder/write-test.abc");
                IDocument[] inputs     = new[] { Context.GetDocument("Test") };
                WriteFiles  writeFiles = new WriteFiles(".txt");

                // When
                IDocument output = writeFiles.Execute(inputs, Context).ToList().First();

                // Then
                object result = output[key];

                Assert.IsInstanceOf <DirectoryPath>(result);
                Assert.AreEqual(expected, ((DirectoryPath)result).FullPath);
            }