fix and regression test for RT #62642
[dbsrgits/DBIx-Class.git] / t / 83cache.t
index f220a35..2f4c036 100644 (file)
@@ -8,7 +8,7 @@ use DBICTest;
 my $schema = DBICTest->init_schema();
 
 my $queries;
-$schema->storage->debugcb( sub{ $queries++ } );
+my $debugcb = sub{ $queries++ };
 my $sdebug = $schema->storage->debug;
 
 plan tests => 23;
@@ -45,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,6 +54,7 @@ $artist = $rs->first();
 is( $queries, 1, 'revisiting a row does not issue a query when cache => 1' );
 
 $schema->storage->debug($sdebug);
+$schema->storage->debugcb (undef);
 
 my @a = $schema->resultset("Artist")->search(
   { },
@@ -72,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,6 +100,7 @@ is( $artist->count_related('cds'), 3, 'artist->count_related returns correct val
 is($queries, 1, 'only one SQL statement executed');
 
 $schema->storage->debug($sdebug);
+$schema->storage->debugcb (undef);
 
 # make sure related_resultset is deleted after object is updated
 $artist->set_column('name', 'New Name');
@@ -130,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($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,4 +190,4 @@ $artist = $rs->find(1);
 is( $queries, 1, 'only one select statement on find with has_many prefetch on resultset' );
 
 $schema->storage->debug($sdebug);
-
+$schema->storage->debugcb (undef);