From: David Kamholz Date: Wed, 8 Mar 2006 18:17:09 +0000 (+0000) Subject: add second test to 23cache, that doesn't work X-Git-Tag: v0.06000~60^2~51 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d2b3ea143e2e86f6502639234db8a403e8ee47f3;p=dbsrgits%2FDBIx-Class.git add second test to 23cache, that doesn't work --- diff --git a/t/run/23cache.tl b/t/run/23cache.tl index 77860b6..6548465 100644 --- a/t/run/23cache.tl +++ b/t/run/23cache.tl @@ -3,7 +3,7 @@ my $schema = shift; eval "use DBD::SQLite"; plan skip_all => 'needs DBD::SQLite for testing' if $@; -plan tests => 13; +plan tests => 14; my $rs = $schema->resultset("Artist")->search( { artistid => 1 } @@ -13,26 +13,6 @@ my $artist = $rs->first; is( scalar @{ $rs->get_cache }, 0, 'cache is not populated without cache attribute' ); -# start test for prefetch SELECT count -unlink 't/var/dbic.trace' if -e 't/var/dbic.trace'; -DBI->trace(1, 't/var/dbic.trace'); - -$artist = $schema->resultset('Artist')->find(1, { prefetch => [qw/cds/] }); - -# count the SELECTs -DBI->trace(0, undef); -$selects = 0; -$trace = IO::File->new('t/var/dbic.trace', '<') - or die "Unable to read trace file"; -while (<$trace>) { - $selects++ if /SELECT/; -} -$trace->close; -unlink 't/var/dbic.trace'; - -is( $selects, 1, 'only one select statement on find with has_many prefetch' ); - - $rs = $schema->resultset("Artist")->search( { 'artistid' => 1 }, { @@ -147,6 +127,45 @@ unlink 't/var/dbic.trace'; is( $selects, 0, 'no additional SQL statements while checking nested data' ); +# start test for prefetch SELECT count +unlink 't/var/dbic.trace' if -e 't/var/dbic.trace'; +DBI->trace(1, 't/var/dbic.trace'); + +$artist = $schema->resultset('Artist')->find(1, { prefetch => [qw/cds/] }); + +# count the SELECTs +DBI->trace(0, undef); +$selects = 0; +$trace = IO::File->new('t/var/dbic.trace', '<') + or die "Unable to read trace file"; +while (<$trace>) { + $selects++ if /SELECT/; +} +$trace->close; +unlink 't/var/dbic.trace'; + +is( $selects, 1, 'only one select statement on find with inline has_many prefetch' ); + +# start test for prefetch SELECT count +unlink 't/var/dbic.trace' if -e 't/var/dbic.trace'; +DBI->trace(1, 't/var/dbic.trace'); + +$rs = $schema->resultset('Artist')->search(undef, { prefetch => [qw/cds/] }); +$artist = $rs->find(1); + +# count the SELECTs +DBI->trace(0, undef); +$selects = 0; +$trace = IO::File->new('t/var/dbic.trace', '<') + or die "Unable to read trace file"; +while (<$trace>) { + $selects++ if /SELECT/; +} +$trace->close; +unlink 't/var/dbic.trace'; + +is( $selects, 1, 'only one select statement on find with has_many prefetch on resultset' ); + } 1;