Bundle trial SQLA for the trial of DBIC (reuse dq technique f4a8b21e)
[dbsrgits/DBIx-Class-Historic.git] / t / lib / DBICTest / Schema / CD.pm
index 0cbf55a..e7cccca 100644 (file)
@@ -1,7 +1,11 @@
 package # hide from PAUSE
     DBICTest::Schema::CD;
 
-use base qw/DBICTest::BaseResult/;
+use warnings;
+use strict;
+
+use base 'DBICTest::BaseResult';
+use DBICTest::Util 'check_customcond_args';
 
 # this tests table name as scalar ref
 # DO NOT REMOVE THE \
@@ -46,8 +50,14 @@ __PACKAGE__->belongs_to( very_long_artist_relationship => 'DBICTest::Schema::Art
 });
 
 # in case this is a single-cd it promotes a track from another cd
-__PACKAGE__->belongs_to( single_track => 'DBICTest::Schema::Track', 'single_track',
-    { join_type => 'left'}
+__PACKAGE__->belongs_to( single_track => 'DBICTest::Schema::Track',
+  { 'foreign.trackid' => 'self.single_track' },
+  { join_type => 'left'},
+);
+
+# add a non-left single relationship for the complex prefetch tests
+__PACKAGE__->belongs_to( existing_single_track => 'DBICTest::Schema::Track',
+  { 'foreign.trackid' => 'self.single_track' },
 );
 
 __PACKAGE__->has_many( tracks => 'DBICTest::Schema::Track' );
@@ -59,6 +69,8 @@ __PACKAGE__->has_many(
     cd_to_producer => 'DBICTest::Schema::CD_to_Producer' => 'cd'
 );
 
+# the undef condition in this rel is *deliberate*
+# tests oddball legacy syntax
 __PACKAGE__->might_have(
     liner_notes => 'DBICTest::Schema::LinerNotes', undef,
     { proxy => [ qw/notes/ ] },
@@ -73,7 +85,7 @@ __PACKAGE__->many_to_many(
 );
 
 __PACKAGE__->belongs_to('genre', 'DBICTest::Schema::Genre',
-    { 'foreign.genreid' => 'self.genreid' },
+    'genreid',
     {
         join_type => 'left',
         on_delete => 'SET NULL',
@@ -107,7 +119,11 @@ __PACKAGE__->might_have(
     'last_track',
     'DBICTest::Schema::Track',
     sub {
-        my $args = shift;
+        # This is for test purposes only. A regular user does not
+        # need to sanity check the passed-in arguments, this is what
+        # the tests are for :)
+        my $args = &check_customcond_args;
+
         return (
             {
                 "$args->{foreign_alias}.trackid" => { '=' =>