1use strict; 2use warnings; 3 4use Test::More; 5use Test::Exception; 6 7use lib qw(t/lib); 8use DBIC::SqlMakerTest; 9use DBICTest; 10 11 12my $schema = DBICTest->init_schema(); 13 14my @chain = ( 15 { 16 columns => [ 'cdid' ], 17 '+columns' => [ { title_lc => { lower => 'title' } } ], 18 '+select' => [ 'genreid' ], 19 '+as' => [ 'genreid' ], 20 } => 'SELECT me.cdid, LOWER( title ), me.genreid FROM cd me', 21 22 { 23 '+columns' => [ { max_year => { max => 'me.year' }}, ], 24 '+select' => [ { count => 'me.cdid' }, ], 25 '+as' => [ 'cnt' ], 26 } => 'SELECT me.cdid, LOWER( title ), MAX( me.year ), me.genreid, COUNT( me.cdid ) FROM cd me', 27 28 { 29 select => [ { min => 'me.cdid' }, ], 30 as => [ 'min_id' ], 31 } => 'SELECT MIN( me.cdid ) FROM cd me', 32 33 { 34 '+columns' => [ { cnt => { count => 'cdid' } } ], 35 } => 'SELECT MIN( me.cdid ), COUNT ( cdid ) FROM cd me', 36 37 { 38 columns => [ 'year' ], 39 } => 'SELECT me.year FROM cd me', 40); 41 42my $rs = $schema->resultset('CD'); 43 44my $testno = 1; 45while (@chain) { 46 my $attrs = shift @chain; 47 my $sql = shift @chain; 48 49 $rs = $rs->search ({}, $attrs); 50 51 is_same_sql_bind ( 52 $rs->as_query, 53 "($sql)", 54 [], 55 "Test $testno of SELECT assembly ok", 56 ); 57 58 $testno++; 59} 60 61done_testing; 62