Exemple #1
0
        public void TestDynamicVisitor()
        {
            var        ast      = Parse("SELECT 3 + 4");
            List <int> integers = new List <int>();
            var        visitor  = SQLDynamicVisitor
                                  .Default(node => { })
                                  .ForType <IntegerLiteral>(node => integers.Add(int.Parse(node.Value)));

            visitor.Visit(ast);
            CollectionAssert.AreEqual(new[] { 3, 4 }, integers);
        }
Exemple #2
0
        public void TestDynamicVisitorWorksWithBaseTypes()
        {
            var ast      = Parse("SELECT 3 + '4' - NULL");
            var literals = new List <string>();
            var visitor  = SQLDynamicVisitor
                           .Default(node => { })
                           .ForType <Literal>(node => literals.Add(node.Value))
                           .ForType <IntegerLiteral>(node => literals.Add(int.Parse(node.Value).ToString()))
                           .ForType <NullLiteral>(node => literals.Add(null));

            visitor.Visit(ast);
            CollectionAssert.AreEqual(new string[] { "3", "4", null }, literals);
        }