X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Frun%2F23cache.tl;fp=t%2Frun%2F23cache.tl;h=77860b64a8478e1d204308aabb1dcada9842074a;hb=27c855b871e7b52a3607f5c139ecdb3869fd8d0d;hp=e654c6179155e2f94ca699f040afcd86ba9c39c7;hpb=8389d4331846be56804dd464da2a4cf7e7ab0ca8;p=dbsrgits%2FDBIx-Class.git diff --git a/t/run/23cache.tl b/t/run/23cache.tl index e654c61..77860b6 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 => 12; +plan tests => 13; my $rs = $schema->resultset("Artist")->search( { artistid => 1 } @@ -13,6 +13,26 @@ 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 }, {