Move around tests a bit
Peter Rabbitson [Tue, 4 Aug 2009 15:41:14 +0000 (15:41 +0000)]
t/count/prefetch.t
t/prefetch/grouped.t

index 925be3d..8012e10 100644 (file)
@@ -7,8 +7,6 @@ use Test::More;
 use DBICTest;
 use DBIC::SqlMakerTest;
 
-plan tests => 14;
-
 my $schema = DBICTest->init_schema();
 
 # collapsing prefetch
@@ -100,41 +98,4 @@ my $schema = DBICTest->init_schema();
   );
 }
 
-{
-    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;
index 1cb670c..b1718bf 100644 (file)
@@ -1,13 +1,13 @@
 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;
 
@@ -232,3 +232,43 @@ for ($cd_rs->all) {
   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;