use DBICTest;
use DBIC::SqlMakerTest;
-plan tests => 14;
-
my $schema = DBICTest->init_schema();
# collapsing prefetch
);
}
-{
- my $rs = $schema->resultset("Artwork")->search(undef, {distinct => 1})
- ->search_related('artwork_to_artist')->search_related('artist',
- undef,
- { prefetch => q(cds) },
- );
- is($rs->all, 0, 'failure without WHERE');
-
- $rs = $schema->resultset("Artwork")->search(undef, {distinct => 1})
- ->search_related('artwork_to_artist')->search_related('artist',
- { 'cds.title' => 'foo' }, # this line has changed
- { prefetch => q(cds) },
- );
- is($rs->all, 0, 'success with WHERE');
-
-
- # different case
- $rs = $schema->resultset("Artist")->search(undef)#, {distinct => 1})
- ->search_related('cds')->search_related('genre',
- { 'genre.name' => 'foo' },
- { prefetch => q(cds) },
- );
- is($rs->all, 0, 'success without distinct');
-
- $rs = $schema->resultset("Artist")->search(undef, {distinct => 1})
- ->search_related('cds')->search_related('genre',
- { 'genre.name' => 'foo' },
- #{ prefetch => q(cds) },
- );
- is($rs->all, 0, 'success without prefetch');
-
- $rs = $schema->resultset("Artist")->search(undef, {distinct => 1})
- ->search_related('cds')->search_related('genre',
- { 'genre.name' => 'foo' },
- { prefetch => q(cds) },
- );
- is($rs->all, 0, 'failure with distinct');
-}
+done_testing;
use strict;
use warnings;
+
use Test::More;
+use Test::Exception;
use lib qw(t/lib);
use DBICTest;
use DBIC::SqlMakerTest;
-plan 'no_plan';
-
my $schema = DBICTest->init_schema();
my $sdebug = $schema->storage->debug;
is ($rs->all, 5, 'Correct number of CD objects');
is ($rs->count, 5, 'Correct count of CDs');
}
+
+lives_ok (sub {
+ my $rs = $schema->resultset("Artwork")->search(undef, {distinct => 1})
+ ->search_related('artwork_to_artist')->search_related('artist',
+ undef,
+ { prefetch => q(cds) },
+ );
+ is($rs->all, 0, 'prefetch without WHERE');
+
+ $rs = $schema->resultset("Artwork")->search(undef, {distinct => 1})
+ ->search_related('artwork_to_artist')->search_related('artist',
+ { 'cds.title' => 'foo' },
+ { prefetch => q(cds) },
+ );
+ is($rs->all, 0, 'prefetch with WHERE');
+
+
+ # different case
+ $rs = $schema->resultset("Artist")->search(undef)
+ ->search_related('cds')->search_related('genre',
+ { 'genre.name' => 'foo' },
+ { prefetch => q(cds) },
+ );
+ is($rs->all, 0, 'prefetch without distinct');
+
+ $rs = $schema->resultset("Artist")->search(undef, {distinct => 1})
+ ->search_related('cds')->search_related('genre',
+ { 'genre.name' => 'foo' },
+ );
+ is($rs->all, 0, 'distinct without prefetch');
+
+ $rs = $schema->resultset("Artist")->search(undef, {distinct => 1})
+ ->search_related('cds')->search_related('genre',
+ { 'genre.name' => 'foo' },
+ { prefetch => q(cds) },
+ );
+ is($rs->all, 0, 'prefetch with distinct');
+}, 'distinct generally works with prefetch');
+
+done_testing;