[Bast-commits] r7201 -
DBIx-Class/0.08/branches/prefetch_redux/t/prefetch
ribasushi at dev.catalyst.perl.org
ribasushi at dev.catalyst.perl.org
Tue Aug 4 20:50:51 GMT 2009
Author: ribasushi
Date: 2009-08-04 20:50:51 +0000 (Tue, 04 Aug 2009)
New Revision: 7201
Added:
DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/via_search_related.t
Modified:
DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/grouped.t
Log:
Split the search_related prefetch tests into a standalone testfile
Modified: DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/grouped.t
===================================================================
--- DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/grouped.t 2009-08-04 20:39:57 UTC (rev 7200)
+++ DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/grouped.t 2009-08-04 20:50:51 UTC (rev 7201)
@@ -233,42 +233,4 @@
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({artistid => '11'}, {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;
Added: DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/via_search_related.t
===================================================================
--- DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/via_search_related.t (rev 0)
+++ DBIx-Class/0.08/branches/prefetch_redux/t/prefetch/via_search_related.t 2009-08-04 20:50:51 UTC (rev 7201)
@@ -0,0 +1,64 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Exception;
+
+use lib qw(t/lib);
+use DBICTest;
+
+my $schema = DBICTest->init_schema();
+
+lives_ok (sub {
+ my $rs = $schema->resultset("Artwork")->search(undef, {distinct => 1})
+ ->search_related('artwork_to_artist')->search_related('artist',
+ undef,
+ { prefetch => 'cds' },
+ );
+ is($rs->all, 0, 'prefetch without WHERE (objects)');
+ is($rs->count, 0, 'prefetch without WHERE (count)');
+
+ $rs = $schema->resultset("Artwork")->search(undef, {distinct => 1})
+ ->search_related('artwork_to_artist')->search_related('artist',
+ { 'cds.title' => 'foo' },
+ { prefetch => 'cds' },
+ );
+ is($rs->all, 0, 'prefetch with WHERE (objects)');
+ is($rs->count, 0, 'prefetch with WHERE (count)');
+
+
+# test where conditions at the root of the related chain
+ my $artist_rs = $schema->resultset("Artist")->search({artistid => 11});
+
+
+ $rs = $artist_rs->search_related('cds')->search_related('genre',
+ { 'genre.name' => 'foo' },
+ { prefetch => 'cds' },
+ );
+ is($rs->all, 0, 'prefetch without distinct (objects)');
+ is($rs->count, 0, 'prefetch without distinct (count)');
+
+
+
+ $rs = $artist_rs->search(undef, {distinct => 1})
+ ->search_related('cds')->search_related('genre',
+ { 'genre.name' => 'foo' },
+ );
+ is($rs->all, 0, 'distinct without prefetch (objects)');
+ is($rs->count, 0, 'distinct without prefetch (count)');
+
+
+
+ $rs = $artist_rs->search({}, {distinct => 1})
+ ->search_related('cds')->search_related('genre',
+ { 'genre.name' => 'foo' },
+ { prefetch => 'cds' },
+ );
+ is($rs->all, 0, 'distinct with prefetch (objects)');
+ is($rs->count, 0, 'distinct with prefetch (count)');
+
+
+
+}, 'distinct generally works with prefetch');
+
+done_testing;
More information about the Bast-commits
mailing list