ParseString() public method

Parses a string entity for nuggets, forwarding the nugget to a caller-provided delegate, with support for replacement of nugget strings in the entity.
public ParseString ( string entity, Func ProcessNugget ) : string
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
Exemplo n.º 1
0
 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;
     });
 }
Exemplo n.º 2
0
 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;
     });
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 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;
     });
 }