public void LimitMatchesToDefault() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("a~b;b~c;c~d;d~e"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "abcde" }); Assert.AreEqual("eeeee\n", results); }
public void TemplateWithPickupOnlyNoPrinting() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("/Today (?<date>..)/;(.)->Date ${date}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "Today is the 5th.", "The 6th is tomorrow." }); Assert.AreEqual("Date is\nDate is\n", results); }
public void WhenGlobPickupIsTooShort_ExpectNoValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"<{opentag}>;abc~${opentag}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "<>def", "abc here" }); Assert.AreEqual("<>def\n here\n", results); }
public void WhenDifferentNamedPickups_ExpectReplacedValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"(?<name>[a-z]+) (?<name2>[a-z]+);(?<digit>[0-9]+)~${name}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "ab cd", "89ab" }); Assert.AreEqual("ab cd\nabab\n", results); }
public void WhenGlobPickupAtEndOfLine_ExpectReplacedValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"{num=[0-9]+}{title};->${title}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "900 the end"}); Assert.AreEqual(" the end\n", results); }
public void LimitMatchesResetsWithEachFile() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("a~b;b~c;c~d;d~e"); commands.MaxReplacements = 1; // this override value should be used for each file read. Don't use value from previous file scan. string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "abcde", "kcde" }); Assert.AreEqual("bbcde\nkdde\n", results); }
public void TemplateWithPickup() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("(?<date>[0-9]+);(.)->Date is ${date}"); commands.MaxReplacements = 3; string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "Today is the 5th.", "The 6th is tomorrow." }); Assert.AreEqual("Date is 5\nDate is 6\n", results); }
public void SetLimitMatchViaCommand() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(" MM = 1 ;a~b;b~c;c~d;d~e"); Assert.AreEqual(1,commands.MaxReplacements); commands = new ParseCommandFile("MaxReplacements= 8 ;a~b;b~c;c~d;d~e"); Assert.AreEqual(8,commands.MaxReplacements); }
public void WhenTwoPickupSpansLinesWithMultipleReferences_ExpectReplacedValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"^<chap=(?<tag>[a-z]+?)>~; end~chapter=${tag}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "<chap=a><last=z> end" }); Assert.AreEqual("<last=z> chapter=a\n", results); }
public void WhenReplacementPickupPresent_ExpectResults() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("my bye~hi ${title}"); Assert.IsTrue(commands.CommandList[0].IsPickupInReplacementString); }
public void WhenPickupRepeats_ExpectReplacedValues() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"^(?<name>[a-z]+)~c${name}${name}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "a" }); Assert.AreEqual("caa\n", results); }
public void WhenPickupAndRegexGiven_ExpectBothReplaced() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"^(\w)(.);..(.)~$1${2}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "abc" }); Assert.AreEqual("cb\n", results); }
public void WhenReplacmentSwapsGroups_All_ExpectChange() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; List<Command> reps = new List<Command>(); Command command = new Command(@"(\w+)\s(\w+)~$2 $1"); Assert.AreEqual("me from you to", engine.ApplySingleCommand("from me to you", command)); }
public void WhenReplacementHasAnchorThatMatches_ExpectChange() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("/^Th/hi~bye; all~gone"); string newline = engine.ApplyCommandsToInputFileList(commands, new List<string> { "mTh my hi world", "Thgo hi mytoday" }); Assert.AreEqual("mTh my hi world\nThgo bye mytoday\n", newline); }
public void WhenReplacementWithTwoInputLines_ExpectChanges() { ReplaceTokens engine = new ReplaceTokens() {sw = new WriteToString()}; ParseCommandFile commands = new ParseCommandFile("a~b"); string newline = engine.ApplyCommandsToInputFileList(commands, new List<string> {"abc", "daf"}); Assert.AreEqual("bbc\ndbf\n", newline); }
public void WhenInvalidCapturePresent_ExpectException() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("my (?<title) bye~hi"); Assert.IsFalse(commands.CommandList[0].IsCaptureInSubjectString); }
public void WhenGlobPickupsWithPattern_ExpectReplacedValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"<isbn>{isbn=[0-9]+}$; report ~ ${isbn}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "<isbn>97809", "report" }); Assert.AreEqual("<isbn>97809\n97809\n", results); }
public void TestNonSupportedCommandTypesAreIgnored(string line, int validCommands) { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(line); Assert.AreEqual(validCommands, commands.CommandList.Count); }
public void WhenSimpleRegex_ExpectSimpleResults(string expected, string line, string input) { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; Command command = new Command(line); Assert.AreEqual(expected, engine.ApplySingleCommand(input, command)); }
public void WhenSimpleMatch_OnlyPrintMatched() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("(you) -> to"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { " 9you today" }); Assert.AreEqual("to\n", results); }
public void WhenTwoPickupSpansLines_ExpectReplacedValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"^(?<name>[a-z]+)~blue ${name};(?<digit>[0-9]+) ~${name}; blue~ ${name}${digit}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "ab 89 cd" }); Assert.AreEqual("ab89 ab ab cd\n", results); }
public void WhenReplacementHasAnchorThatMatchesManySameLine_ExpectMultipleChangesLine() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("/my/hi~bye; all~gone"); string newline = engine.ApplyCommandsToInputFileList(commands, new List<string> { "This is my hi world", "go hi today" }); Assert.AreEqual("Tbyes is my bye world\ngo hi today\n", newline); }
public void WhenValidFieldContent_ExpectValidCommand(string line) { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(line); Assert.AreEqual(1, commands.CommandList.Count); }
public void WhenOnlyScanTokensGiven_ExpectScannerMode() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"b; a; c"); Assert.AreEqual(ParseCommandFile.RunningAs.Scanner, commands.kgrepMode); }
public void WhenReplacementsGiven_ExpectAllReplaced() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile("a~b; b~c"); string newline = engine.ApplyCommandsToInputFileList(commands, new List<string> { "a b c", "a b c", "earth" }); Assert.AreEqual("c c c\nc c c\necrth\n", newline); }
public void WhenPatternGiven_FindCaptures(bool expected, string cmd) { ReplaceTokens engine = new ReplaceTokens(); List<Command> reps = new List<Command>(); reps.Add(new Command(cmd)); Assert.IsTrue(reps[0].IsCaptureInSubjectString); }
public void WhenInvalidCommandSyntax_ExpectException(string line) { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(line); }
public void WhenReplacing_ReplaceUsingOriginalLineAsSource(string line, string command, string expectedResults) { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(command); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { line }); Assert.AreEqual(expectedResults, results); }
public void WhenGlobPickupsSpanThreeLines_ExpectReplacedValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"<title>{title}</title>; <isbn>{isbn}$; report ~ ${isbn} ${title}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "<isbn>97809", "<title>Answers</title>", "report" }); Assert.AreEqual("<isbn>97809\n<title>Answers</title>\n97809 Answers\n", results); }
public void WhenMatchedNamedAndUnnamedPickups_ExpectReplacedValue() { ReplaceTokens engine = new ReplaceTokens() { sw = new WriteToString() }; ParseCommandFile commands = new ParseCommandFile(@"(?<letter>[a-z]+).([0-9]);12~${1}${letter}"); string results = engine.ApplyCommandsToInputFileList(commands, new List<string> { "ab 12" }); Assert.AreEqual("ab 1ab\n", results); }