Test for restricted prefetch (now passing again after previous commit)
[dbsrgits/DBIx-Class.git] / t / prefetch / diamond.t
index fe30ac8..f7a21e0 100644 (file)
@@ -31,18 +31,28 @@ my $ars = $schema->resultset ('Artwork');
 # The current artwork belongs to a cd by artist1
 # but the artwork itself is painted by artist2
 #
-# What we try is all possible permutations of join/prefetch 
+# What we try is all possible permutations of join/prefetch
 # combinations in both directions, while always expecting to
 # arrive at the specific artist at the end of each path.
 
 
 my $cd_paths = {
   'no cd' => [],
+  'no cd empty' => [ '' ],
+  'no cd undef' => [ undef ],
+  'no cd href' => [ {} ],
+  'no cd aoh' => [ [{}] ],
+  'no cd complex' => [ [ [ undef ] ] ],
   'cd' => ['cd'],
   'cd->artist1' => [{'cd' => 'artist'}]
 };
 my $a2a_paths = {
   'no a2a' => [],
+  'no a2a empty ' => [ '' ],
+  'no a2a undef' => [ undef ],
+  'no a2a href' => [ {} ],
+  'no a2a aoh' => [ [{}] ],
+  'no a2a complex' => [ [ '' ] ],
   'a2a' => ['artwork_to_artist'],
   'a2a->artist2' => [{'artwork_to_artist' => 'artist'}]
 };
@@ -96,12 +106,12 @@ foreach my $cd_path (keys %$cd_paths) {
   }
 }
 
-plan tests => (scalar (keys %tests) * 3);
-
 foreach my $name (keys %tests) {
   foreach my $artwork ($tests{$name}->all()) {
     is($artwork->id, 1, $name . ', correct artwork');
     is($artwork->cd->artist->artistid, 1, $name . ', correct artist_id over cd');
     is($artwork->artwork_to_artist->first->artist->artistid, 2, $name . ', correct artist_id over A2A');
   }
-}
\ No newline at end of file
+}
+
+done_testing;