4 use SQL::Abstract::AST::Compat;
6 use Test::More tests => 11;
9 ok(my $visitor = SQL::Abstract::AST::Compat->new);
11 my $foo_id = { -type => 'name', args => [qw/foo/] };
12 my $bar_id = { -type => 'name', args => [qw/bar/] };
19 { -type => 'value', value => 1 }
24 $visitor->generate({ foo => 1 }),
34 { -type => 'value', value => 'some str' }
39 $visitor->generate({ foo => 1, bar => 'some str' }),
50 $visitor->generate({ -or => { foo => 1, bar => 'some str' } }),
62 $visitor->generate([ -and => { foo => 1, bar => 'some str' } ]),
70 "-and as first element of array";
74 $visitor->generate([ -and => { foo => 1, bar => 'some str' }, { foo => 1} ]),
88 "-and as first element of array + hash";
91 $visitor->generate({ foo => { '!=' => 'bar' } }),
96 { -type => 'value', value => 'bar' },
99 "foo => { '!=' => 'bar' }";
102 $visitor->generate({ foo => [ 1, 'bar' ] }),
111 { -type => 'value', value => 'bar' },
116 "foo => [ 1, 'bar' ]";
119 $visitor->generate({ foo => { -in => [ 1, 'bar' ] } }),
124 { -type => 'value', value => 1 },
125 { -type => 'value', value => 'bar' },
128 "foo => { -in => [ 1, 'bar' ] }";
131 $visitor->generate({ foo => { -not_in => [ 1, 'bar' ] } }),
136 { -type => 'value', value => 1 },
137 { -type => 'value', value => 'bar' },
140 "foo => { -not_in => [ 1, 'bar' ] }";
143 $visitor->generate({ foo => { -in => [ ] } }),
150 "foo => { -in => [ ] }";