X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fprefetch%2Fwith_limit.t;h=24625ad8b57cabe1d550c6f77f8216c884b23113;hb=27ffa6c0c4e12265ea84d2b0b954a3b8954e4d69;hp=6e849f2d4b48497b622d73c7339e05e728b84b38;hpb=3a16ebd834706649191c545894456b2c9a489419;p=dbsrgits%2FDBIx-Class.git diff --git a/t/prefetch/with_limit.t b/t/prefetch/with_limit.t index 6e849f2..24625ad 100644 --- a/t/prefetch/with_limit.t +++ b/t/prefetch/with_limit.t @@ -8,25 +8,24 @@ use Test::Exception; use lib qw(t/lib); use DBICTest; -plan tests => 7; +plan tests => 9; my $schema = DBICTest->init_schema(); my $no_prefetch = $schema->resultset('Artist')->search( - undef, - { rows => 3 } -); - -my $use_prefetch = $schema->resultset('Artist')->search( [ # search deliberately contrived { 'artwork.cd_id' => undef }, { 'tracks.title' => { '!=' => 'blah-blah-1234568' }} ], + { rows => 3, join => { cds => [qw/artwork tracks/] }, + } +); + +my $use_prefetch = $no_prefetch->search( + {}, { prefetch => 'cds', - join => { cds => [qw/artwork tracks/] }, - rows => 3, order_by => { -desc => 'name' }, } ); @@ -83,3 +82,10 @@ throws_ok ( qr/resultsets prefetching has_many/, 'single() with multiprefetch is illegal', ); + +my $artist = $use_prefetch->search({'cds.title' => $artist_many_cds->cds->first->title })->next; +is($artist->cds->count, 1, "count on search limiting prefetched has_many"); + +# try with double limit +my $artist2 = $use_prefetch->search({'cds.title' => { '!=' => $artist_many_cds->cds->first->title } })->slice (0,0)->next; +is($artist2->cds->count, 2, "count on search limiting prefetched has_many");