Refactor more things to fully hash based AST
[dbsrgits/SQL-Abstract-2.0-ish.git] / t / 100_where_basic.t
index 2012ed8..e175912 100644 (file)
@@ -18,32 +18,59 @@ is $sqla->dispatch(
   }
 ), "me.id > ?", 
    "simple where clause";
-__END__
+
 is $sqla->dispatch(
-  [ -in => [  ] ]
+  { -type => 'expr', op => 'in', args => [  ] }
 ), "0 = 1", "emtpy -in";
 
 is $sqla->dispatch(
-  [ -where =>
-      [ '>', [-name => qw/me id/], [-value => 500 ] ]
-  ]
-), "WHERE me.id > ?", 
-   "simple where clause";
+  { -type => 'expr', 
+    op => 'in', 
+    args => [ { -type => 'name', args => ['foo'] } ],
+  }
+), "0 = 1", "emtpy -in";
 
-eq_or_diff( [ SQL::Abstract->generate(
-    [ -ast_version => 1,
-      -where =>
-        [ '>', [-name => qw/me id/], [-value => 500 ] ],
-        [ '==', [-name => qw/me name/], [-value => '200' ] ]
+is $sqla->dispatch(
+  { -type => 'expr',
+    op => '>',
+    args => [
+      {-type => 'name', args => [qw/me id/]}, 
+      {-type => 'value', value => 500 }
     ]
+  }
+), "me.id > ?", 
+   "simple expr clause";
+
+eq_or_diff( [ SQL::Abstract->generate(
+    { -ast_version => 1,
+      -type => 'expr',
+      op => 'and',
+      args => [
+        { -type => 'expr',
+          op => '>',
+          args => [
+            {-type => 'name', args => [qw/me id/]}, 
+            {-type => 'value', value => 500 }
+          ]
+        },
+        { -type => 'expr',
+          op => '==',
+          args => [
+            {-type => 'name', args => [qw/me name/]}, 
+            {-type => 'value', value => '200' }
+          ]
+        },
+      ]
+    }
   ) ], 
-  [ "WHERE me.id > ? AND me.name = ?",
+  [ "me.id > ? AND me.name = ?",
     [ 500,
       '200'
     ]
   ],
   "Where with binds"
 );
+__END__
 
 
 is $sqla->dispatch(