X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F83cache.t;h=2f4c0364b809bf2678a09aa113597319fcb27ca0;hb=b182d87b6ecfcf3ab58f4b13e5353f89c59a6e0a;hp=45f50c167be29d4e36a580032c9ce5b9a0d2f84d;hpb=660cf1be74795a5a5784f413741816413a724c1a;p=dbsrgits%2FDBIx-Class.git diff --git a/t/83cache.t b/t/83cache.t index 45f50c1..2f4c036 100644 --- a/t/83cache.t +++ b/t/83cache.t @@ -8,10 +8,9 @@ use DBICTest; my $schema = DBICTest->init_schema(); my $queries; -$schema->storage->debugcb( sub{ $queries++ } ); +my $debugcb = sub{ $queries++ }; +my $sdebug = $schema->storage->debug; -eval "use DBD::SQLite"; -plan skip_all => 'needs DBD::SQLite for testing' if $@; plan tests => 23; my $rs = $schema->resultset("Artist")->search( @@ -46,6 +45,7 @@ $rs->clear_cache; $queries = 0; $schema->storage->debug(1); +$schema->storage->debugcb ($debugcb); $rs = $schema->resultset('Artist')->search( undef, { cache => 1 } ); while( $artist = $rs->next ) {} @@ -53,7 +53,8 @@ $artist = $rs->first(); is( $queries, 1, 'revisiting a row does not issue a query when cache => 1' ); -$schema->storage->debug(0); +$schema->storage->debug($sdebug); +$schema->storage->debugcb (undef); my @a = $schema->resultset("Artist")->search( { }, @@ -73,11 +74,10 @@ $rs = $schema->resultset("Artist")->search( } ); -use Data::Dumper; $Data::Dumper::Deparse = 1; - # start test for prefetch SELECT count $queries = 0; $schema->storage->debug(1); +$schema->storage->debugcb ($debugcb); $artist = $rs->first; $rs->reset(); @@ -99,7 +99,8 @@ is( $artist->count_related('cds'), 3, 'artist->count_related returns correct val is($queries, 1, 'only one SQL statement executed'); -$schema->storage->debug(0); +$schema->storage->debug($sdebug); +$schema->storage->debugcb (undef); # make sure related_resultset is deleted after object is updated $artist->set_column('name', 'New Name'); @@ -131,18 +132,21 @@ is($artist->cds, 0, 'No cds for this artist'); # SELECT count for nested has_many prefetch $queries = 0; $schema->storage->debug(1); +$schema->storage->debugcb ($debugcb); $artist = ($rs->all)[0]; is($queries, 1, 'only one SQL statement executed'); -$schema->storage->debug(0); +$schema->storage->debug($sdebug); +$schema->storage->debugcb (undef); my @objs; #$artist = $rs->find(1); $queries = 0; $schema->storage->debug(1); +$schema->storage->debugcb ($debugcb); my $cds = $artist->cds; my $tags = $cds->next->tags; @@ -185,5 +189,5 @@ $artist = $rs->find(1); is( $queries, 1, 'only one select statement on find with has_many prefetch on resultset' ); -$schema->storage->debug(0); - +$schema->storage->debug($sdebug); +$schema->storage->debugcb (undef);