Additional tests on prefetch - illustrates the bug with left-join has_many (NULL...
Ian Wells [Wed, 1 Jul 2009 18:04:16 +0000 (18:04 +0000)]
t/prefetch/count.t

index fac478c..d554abd 100644 (file)
@@ -5,7 +5,7 @@ use Test::More;
 use lib qw(t/lib);
 use DBICTest;
 
-plan tests => 5;
+plan tests => 7;
 
 my $schema = DBICTest->init_schema();
 
@@ -22,3 +22,10 @@ is($cd_rs->all, 5, 'Amount of CD objects with tracks');
 is($cd_rs->search_related('tracks')->count, 15, 'Tracks associated with CDs count (after SELECT()ing)');
 
 is($cd_rs->search_related ('tracks')->all, 15, 'Track objects associated with CDs (after SELECT()ing)');
+
+my $artist=$schema->resultset('Artist')->create({name => 'xxx'});
+my $artist_rs = $schema->resultset('Artist')->search({artistid => $artist->id}, {prefetch=>'cds'});
+is($artist_rs->related_resultset('cds')->count, 0, "No CDs on a brand new artist");
+is($artist_rs->count, 1,
+   "No CDs prefetched but the artist is still returned");
+