Exemplo n.º 1
0
        private static TestPatch CreateSmallPatchExample(bool reverse = false)
        {
            var header = reverse
                ? "diff --git a/thisisatestb.txt b/thisisatesta.txt"
                : "diff --git b/thisisatesta.txt a/thisisatestb.txt";
            const string index     = "index 5e4dce2..5eb1e6f 100644";
            const string fileNameA = "thisisatesta.txt";
            const string fileNameB = "thisisatestb.txt";

            var patchText   = new StringBuilder();
            var patchOutput = new StringBuilder();

            AppendHeaderLine(header);
            AppendHeaderLine(index);

            if (reverse)
            {
                AppendHeaderLine("--- b/" + fileNameB);
                AppendHeaderLine("+++ a/" + fileNameA);
            }
            else
            {
                AppendHeaderLine("--- a/" + fileNameA);
                AppendHeaderLine("+++ b/" + fileNameB);
            }

            AppendDiffLine("@@ -1,2 +1,2 @@");
            AppendDiffLine(" iiiiii");
            AppendDiffLine("-ąśdkjaldskjlaksd");
            AppendDiffLine("+changed again€");

            var patch = new Patch(header, index, PatchFileType.Text, fileNameA, fileNameB, false, PatchChangeType.ChangeFile, patchText.ToString());

            return(new TestPatch(patch, patchOutput.ToString()));

            void AppendHeaderLine(string line)
            {
                patchText.Append(line).Append("\n");
                patchOutput.Append(VsrModule.ReEncodeString(line, VsrModule.SystemEncoding, VsrModule.LosslessEncoding));
                patchOutput.Append("\n");
            }

            void AppendDiffLine(string line)
            {
                patchText.Append(line).Append("\n");
                patchOutput.Append(VsrModule.ReEncodeString(line, Encoding.UTF8, VsrModule.LosslessEncoding));
                patchOutput.Append("\n");
            }
        }