add test for last fix
David Kamholz [Wed, 8 Mar 2006 17:28:27 +0000 (17:28 +0000)]
lib/DBIx/Class/ResultSet.pm
t/run/23cache.tl

index 1af7e87..120aedc 100644 (file)
@@ -426,9 +426,7 @@ sub _construct_object {
   my ($self, @row) = @_;
   my @as = @{ $self->{attrs}{as} };
 
-  warn "collapsing";
   my $info = $self->_collapse_result(\@as, \@row);
-  warn "done collapsing";
 
   my $new = $self->result_class->inflate_result($self->result_source, @$info);
 
index e654c61..77860b6 100644 (file)
@@ -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 },
   {