X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fprefetch%2Fwith_limit.t;h=b8c13a3b8aa6efd16f572d0f68ad53435c7d0920;hb=fecb38cba68186d579ef96f89bf6ce557e55ab1c;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..b8c13a3 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; - 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( + {}, { + select => ['me.artistid', 'me.name'], + as => ['artistid', 'name'], prefetch => 'cds', - join => { cds => [qw/artwork tracks/] }, - rows => 3, order_by => { -desc => 'name' }, } ); @@ -83,3 +82,12 @@ 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"); + +done_testing;