public void ItDoesntParseUnregisteredHelpers() { var parser = new InstanceMustacheParser(); var helpers = new Helpers() .Register("MyHelper", ctx => "Foo"); var pipeline = BuildHelperPipeline(helpers); var tokens = parser.Parse("{{MyHelper2}}", pipeline: pipeline); Assert.Single(tokens.Children); Assert.IsType <InterpolationToken>(tokens.Children[0]); }
public void ItParsesHelpersWithArgument() { var parser = new InstanceMustacheParser(); var helpers = new Helpers() .Register <int>("MyHelper", (ctx, arg) => "Foo"); var pipeline = BuildHelperPipeline(helpers); var tokens = parser.Parse("{{MyHelper MyArgument}}", pipeline: pipeline); Assert.Single(tokens.Children); var helperToken = Assert.IsType <HelperToken>(tokens.Children[0]); Assert.Equal("MyHelper", helperToken.Name.ToString()); Assert.Equal("MyArgument", helperToken.Args[0].Value); Assert.True(helperToken.Args[0].ShouldAttemptContextLoad); }
public void ItShouldBeAbleToParseStaticParameters() { var parser = new InstanceMustacheParser(); var helpers = new Helpers() .Register <int, int>("MyHelper", (ctx, arg1, arg2) => "Foo"); var pipeline = BuildHelperPipeline(helpers); var tokens = parser.Parse("{{MyHelper 10 MyArgument2}}", pipeline: pipeline); Assert.Single(tokens.Children); var helperToken = Assert.IsType <HelperToken>(tokens.Children[0]); Assert.Equal("MyHelper", helperToken.Name.ToString()); Assert.Equal("10", helperToken.Args[0].Value); Assert.True(helperToken.Args[0].ShouldAttemptContextLoad); Assert.Equal("MyArgument2", helperToken.Args[1].Value); Assert.True(helperToken.Args[1].ShouldAttemptContextLoad); }
public void ItShouldBeAbleToParseStaticParametersWithQuotesAndSpaces(object value) { var argument = (string)value; var argumentValue = argument .Replace("\"", string.Empty) .Replace("\'", string.Empty); var parser = new InstanceMustacheParser(); var helpers = new Helpers() .Register <string>("MyHelper", (ctx, arg) => "Foo"); var pipeline = BuildHelperPipeline(helpers); var tokens = parser.Parse($"{{{{MyHelper {argument}}}}}", pipeline: pipeline); Assert.Single(tokens.Children); var helperToken = Assert.IsType <HelperToken>(tokens.Children[0]); Assert.Equal("MyHelper", helperToken.Name.ToString()); Assert.Equal(argumentValue, helperToken.Args[0].Value); Assert.False(helperToken.Args[0].ShouldAttemptContextLoad); }