Start working on update clause
[dbsrgits/SQL-Abstract-2.0-ish.git] / t / compat / ast / 01.t
index 0fb36ee..4b1d316 100644 (file)
@@ -3,7 +3,13 @@ use warnings;
 
 use FindBin;
 use lib "$FindBin::Bin/../../lib";
-use SQLADumperSort;
+use Test::SQL::Abstract::Util qw/
+  mk_name
+  mk_value
+  mk_expr
+  field_op_value
+  :dumper_sort
+/;
 
 use SQL::Abstract::Compat;
 
@@ -13,8 +19,8 @@ use Test::Differences;
 ok(my $visitor = SQL::Abstract::Compat->new);
 
 
-my $foo_id = { -type => 'name', args => [qw/foo/] };
-my $bar_id = { -type => 'name', args => [qw/bar/] };
+my $foo_id = { -type => 'identifier', elements => [qw/foo/] };
+my $bar_id = { -type => 'identifier', elements => [qw/bar/] };
 
 my $foo_eq_1 = field_op_value($foo_id, '==', 1);
 my $bar_eq_str = field_op_value($bar_id, '==', 'some str');
@@ -133,7 +139,7 @@ my $worker_eq = sub {
     -type => 'expr',
     op => '==',
     args => [
-      { -type => 'name', args => ['worker'] },
+      { -type => 'identifier', elements => ['worker'] },
       { -type => 'value', value => $_[0] },
     ],
   }
@@ -180,8 +186,8 @@ eq_or_diff
     'test', '*', [ { ticket => [11, 12, 13] } ]
   ),
   { -type => 'select',
-    columns => [ { -type => 'name', args => ['*'] } ],
-    tablespec => { -type => 'name', args => ['test'] },
+    columns => [ { -type => 'identifier', elements => ['*'] } ],
+    tablespec => { -type => 'identifier', elements => ['test'] },
     where => $ticket_or_eq
   },
   "Complex AST with convert('UPPER')";
@@ -207,8 +213,8 @@ eq_or_diff
                  ]
   ),
   { -type => 'select',
-    columns => [ { -type => 'name', args => ['*'] } ],
-    tablespec => { -type => 'name', args => ['test'] },
+    columns => [ { -type => 'identifier', elements => ['*'] } ],
+    tablespec => { -type => 'identifier', elements => ['test'] },
     where => $hostname_and_ticket
   },
   "Complex AST mixing arrays+hashes with convert('UPPER')";
@@ -232,8 +238,8 @@ eq_or_diff
                  ]
   ),
   { -type => 'select',
-    columns => [ { -type => 'name', args => ['*'] } ],
-    tablespec => { -type => 'name', args => ['test'] },
+    columns => [ { -type => 'identifier', elements => ['*'] } ],
+    tablespec => { -type => 'identifier', elements => ['test'] },
     where => {
       -type => 'expr',
       op => 'or',
@@ -273,8 +279,8 @@ eq_or_diff
                  ]
   ),
   { -type => 'select',
-    columns => [ { -type => 'name', args => ['*'] } ],
-    tablespec => { -type => 'name', args => ['test'] },
+    columns => [ { -type => 'identifier', elements => ['*'] } ],
+    tablespec => { -type => 'identifier', elements => ['test'] },
     where => {
       -type => 'expr',
       op => 'or',
@@ -300,8 +306,8 @@ eq_or_diff
                  ]
   ),
   { -type => 'select',
-    columns => [ { -type => 'name', args => ['*'] } ],
-    tablespec => { -type => 'name', args => ['test'] },
+    columns => [ { -type => 'identifier', elements => ['*'] } ],
+    tablespec => { -type => 'identifier', elements => ['test'] },
     where => {
       -type => 'expr',
       op => 'or',
@@ -324,53 +330,7 @@ eq_or_diff
   },
   "Complex AST [ {a => [1,2],b => 3}, { c => 4 }, { d => [5,6,7], e => { '!=' => [8,9] }, q => {'not in' => [10,11] } } ]";
 
-sub field_op_value {
-  my ($field, $op, $value) = @_;
 
-  $field = ref $field eq 'HASH'
-         ? $field
-         : ref $field eq 'ARRAY' 
-         ? { -type => 'name', args => $field } 
-         : { -type => 'name', args => [$field] };
+sub upper { mk_expr(UPPER => @_) }
 
-  my @value = ref $value eq 'HASH'
-            ? $value
-            : ref $value eq 'ARRAY'
-            ? @$value
-            : { -type => 'value', value => $value };
 
-  return {
-    -type => 'expr',
-    op => $op,
-    args => [
-      $field,
-      @value
-    ]
-  };
-}
-
-sub upper { expr(UPPER => @_) }
-
-sub expr {
-  my ($op, @args) = @_;
-
-  return {
-    -type => 'expr',
-    op => $op,
-    args => [@args]
-  };
-}
-
-sub mk_name {
-  my ($field) = @_;
-  $field = ref $field eq 'HASH'
-         ? $field
-         : ref $field eq 'ARRAY' 
-         ? { -type => 'name', args => $field } 
-         : { -type => 'name', args => [$field] };
-  return $field;
-}
-
-sub mk_value {
-  return { -type => 'value', value => $_[0] }
-}