Ensure undef_on_null_fk does not affect non-introspectable custom conds
[dbsrgits/DBIx-Class-Historic.git] / t / lib / DBICTest / Schema / CD.pm
index 45fdf6f..1a0771b 100644 (file)
@@ -4,7 +4,8 @@ package # hide from PAUSE
 use warnings;
 use strict;
 
-use base qw/DBICTest::BaseResult/;
+use base 'DBICTest::BaseResult';
+use DBICTest::Util 'check_customcond_args';
 
 # this tests table name as scalar ref
 # DO NOT REMOVE THE \
@@ -54,6 +55,14 @@ __PACKAGE__->belongs_to( single_track => 'DBICTest::Schema::Track',
   { join_type => 'left'},
 );
 
+__PACKAGE__->belongs_to( single_track_opaque => 'DBICTest::Schema::Track',
+  sub {
+    my $args = &check_customcond_args;
+    \ " $args->{foreign_alias}.trackid = $args->{self_alias}.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' },
@@ -68,6 +77,9 @@ __PACKAGE__->has_many(
     cd_to_producer => 'DBICTest::Schema::CD_to_Producer' => 'cd'
 );
 
+__PACKAGE__->has_many( twokeys => 'DBICTest::Schema::TwoKeys', 'cd' );
+
+
 # the undef condition in this rel is *deliberate*
 # tests oddball legacy syntax
 __PACKAGE__->might_have(
@@ -118,7 +130,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" => { '=' =>