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 \
});
# 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'},
+);
+
+__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' },
);
__PACKAGE__->has_many( tracks => 'DBICTest::Schema::Track' );
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(
liner_notes => 'DBICTest::Schema::LinerNotes', undef,
{ proxy => [ qw/notes/ ] },
);
__PACKAGE__->belongs_to('genre', 'DBICTest::Schema::Genre',
- { 'foreign.genreid' => 'self.genreid' },
+ 'genreid',
{
join_type => 'left',
on_delete => 'SET NULL',
'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" => { '=' =>