[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