public void TestLexerTokenization(string input, IEnumerable<Token> expectedResult) { var lexer = new Lexer(); var result = lexer.Tokenize(input); Assert.NotNull(result); Assert.Equal(expectedResult, result, new TokenEqualityComparer()); }
public void TestFullStack(string inputTemplate, object inputObject, string expectedResult) { var lexer = new Lexer(); var tokens = lexer.Tokenize(inputTemplate); var parser = new Parser(new HandlebarsParser()); var ast = parser.Parse(tokens); var compiler = new VTreeEmitter(); var dataBinder = TypeDataBinder.BinderFromObject(inputObject); var method = compiler.Emit(ast, dataBinder, null); var result = method.Execute(new ObjectDataContext(inputObject), null); Assert.Equal(expectedResult, result.ToString()); }