Fix some should_quote_data_type problems
[dbsrgits/DBIx-Class.git] / t / resultset / as_query.t
CommitLineData
59af6677 1#!/usr/bin/perl
2
3use strict;
4use warnings FATAL => 'all';
5
70eb901c 6use Data::Dumper;
7
59af6677 8use Test::More;
d0a3e4e2 9
10BEGIN {
11 eval "use SQL::Abstract 1.49";
12 plan $@
13 ? ( skip_all => "Needs SQLA 1.49+" )
14 : ( tests => 4 );
15}
16
59af6677 17use lib qw(t/lib);
18use DBICTest;
152d414d 19use DBIC::SqlMakerTest;
59af6677 20
4dc99a01 21my $schema = DBICTest->init_schema();
22my $art_rs = $schema->resultset('Artist');
23my $cdrs = $schema->resultset('CD');
59af6677 24
25{
26 my $arr = $art_rs->as_query;
4dc99a01 27 my ($query, @bind) = @{$$arr};
59af6677 28
152d414d 29 is_same_sql_bind(
30 $query, \@bind,
45594863 31 "(SELECT me.artistid, me.name, me.rank, me.charfield FROM artist me)", [],
152d414d 32 );
59af6677 33}
34
35$art_rs = $art_rs->search({ name => 'Billy Joel' });
36
37{
38 my $arr = $art_rs->as_query;
4dc99a01 39 my ($query, @bind) = @{$$arr};
59af6677 40
152d414d 41 is_same_sql_bind(
42 $query, \@bind,
45594863 43 "(SELECT me.artistid, me.name, me.rank, me.charfield FROM artist me WHERE ( name = ? ))",
152d414d 44 [ [ name => 'Billy Joel' ] ],
45 );
59af6677 46}
47
48$art_rs = $art_rs->search({ rank => 2 });
49
50{
03834f77 51 my $arr = $art_rs->as_query;
4dc99a01 52 my ($query, @bind) = @{$$arr};
59af6677 53
152d414d 54 is_same_sql_bind(
55 $query, \@bind,
45594863 56 "(SELECT me.artistid, me.name, me.rank, me.charfield FROM artist me WHERE ( ( ( rank = ? ) AND ( name = ? ) ) ) )",
152d414d 57 [ [ rank => 2 ], [ name => 'Billy Joel' ] ],
58 );
59af6677 59}
60
658fa250 61my $rscol = $art_rs->get_column( 'charfield' );
62
63{
03834f77 64 my $arr = $rscol->as_query;
4dc99a01 65 my ($query, @bind) = @{$$arr};
658fa250 66
152d414d 67 is_same_sql_bind(
68 $query, \@bind,
45594863 69 "(SELECT me.charfield FROM artist me WHERE ( ( ( rank = ? ) AND ( name = ? ) ) ) )",
152d414d 70 [ [ rank => 2 ], [ name => 'Billy Joel' ] ],
71 );
658fa250 72}
70eb901c 73
59af6677 74__END__