public ParseString ( string entity, Func |
||
entity | string | /// String containing nuggets to be parsed. E.g. source code file, HTTP response entity. /// |
ProcessNugget | Func |
/// Delegate callback to be called for each nugget encountered in entity: /// delegate(string nuggetString, int pos, Nugget nugget1, string entity1). /// Returns a string with which to replace the nugget string in the source entity. /// If no change, then may return null. /// |
return | string |
private void CanParseEntity_CustomNuggetTokens_Act(string entity, NuggetParser nuggetParser) { // Act. int i = 0; nuggetParser.ParseString(entity, delegate(string nuggetString, int pos, Nugget nugget1, string entity1) { switch (i++) { case 0: { Assert.AreEqual(nugget1, new Nugget { MsgId = "hello", FormatItems = new string[] { "{0}" } }); break; } case 1: { Assert.AreEqual(nugget1, new Nugget { MsgId = "there", FormatItems = new string[] { "{0}", "{1}" }, Comment = "comment comment comment" }); break; } default: Assert.Fail(); break; } return null; }); }
public void NuggetParser_CanParseEntity02() { // Arrange. NuggetTokens nuggetTokens = new NuggetTokens("[[[", "]]]", "|||", "///"); NuggetParser nuggetParser = new NuggetParser(nuggetTokens, NuggetParser.Context.SourceProcessing); string entity = "<p>[[[hello|||{0}]]]</p><p>[[[there]]]</p>"; // Act. nuggetParser.ParseString(entity, delegate(string nuggetString, int pos, Nugget nugget1, string entity1) { if (pos == 3) { Assert.AreEqual(nugget1, new Nugget { MsgId = "hello", FormatItems = new string[] { "{0}" } }); } else if (pos == 27) { Assert.AreEqual(nugget1, new Nugget { MsgId = "there" }); } else { Assert.Fail(); } return null; }); }
public void NuggetParser_ResponseMode_CanParseEntity_TwoParams_FirstNonEmpty_SecondEmpty() { var nuggetTokens = new NuggetTokens("[[[", "]]]", "|||", "///"); NuggetParser nuggetParser = new NuggetParser(nuggetTokens, NuggetParser.Context.ResponseProcessing); var input = "[[[Title: %0, %1|||X|||]]]"; var result = nuggetParser.ParseString(input, (nuggetString, pos, nugget, i_entity) => { Assert.IsTrue(nugget.IsFormatted); return nugget.MsgId; }); Assert.AreEqual("Title: %0, %1", result); }
public void NuggetParser_SourceMode_CanParseEntity_EmptyParam() { var nuggetTokens = new NuggetTokens("[[[", "]]]", "|||", "///"); NuggetParser nuggetParser = new NuggetParser(nuggetTokens, NuggetParser.Context.SourceProcessing); var input = "[[[Title: %0|||]]]"; var result = nuggetParser.ParseString(input, (nuggetString, pos, nugget, i_entity) => { Assert.IsFalse(nugget.IsFormatted); return nugget.MsgId; }); Assert.AreEqual("Title: %0|||", result); }
public void NuggetParser_ResponseMode_CanParseEntity_EmptyParam() { var nuggetTokens = new NuggetTokens("[[[", "]]]", "|||", "///"); NuggetParser nuggetParser = new NuggetParser(nuggetTokens, NuggetParser.Context.ResponseProcessing); var input = "[[[Title: %0|||]]]"; var result = nuggetParser.ParseString(input, (nuggetString, pos, nugget, i_entity) => { Assert.IsTrue(nugget.IsFormatted); var message = NuggetLocalizer.ConvertIdentifiersInMsgId(nugget.MsgId); message = String.Format(message, nugget.FormatItems); return message; }); Assert.AreEqual("Title: ", result); }
public void NuggetParser_CanParseEntity_MultiLineNugget01() { // Arrange. NuggetTokens nuggetTokens = new NuggetTokens("[[[", "]]]", "|||", "///"); NuggetParser nuggetParser = new NuggetParser(nuggetTokens, NuggetParser.Context.SourceProcessing); string entity = "<p>[[[hello\r\n%0|||{0}]]]</p><p>[[[there]]]</p>"; // Act. int i = 0; nuggetParser.ParseString(entity, delegate(string nuggetString, int pos, Nugget nugget1, string entity1) { switch (i++) { case 0: { Assert.AreEqual(nugget1, new Nugget { MsgId = "hello\r\n%0", FormatItems = new string[] { "{0}" } }); break; } case 1: { Assert.AreEqual(nugget1, new Nugget { MsgId = "there" }); break; } default: Assert.Fail(); break; } return null; }); }