X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FSchema%2FArtwork_to_Artist.pm;fp=t%2Flib%2FDBICTest%2FSchema%2FArtwork_to_Artist.pm;h=dc0d50d793f1b171d292f76d3a7c8b9c1e02c6bd;hb=fe0708a2d68b5d34b6bc6f7e70164c3e569f1dd0;hp=085908022f2ccbc7a4f23b5a4547ee2a06d3041a;hpb=01272eb81fe3a43e0a2f7befa465cc669945d543;p=dbsrgits%2FDBIx-Class.git diff --git a/t/lib/DBICTest/Schema/Artwork_to_Artist.pm b/t/lib/DBICTest/Schema/Artwork_to_Artist.pm index 0859080..dc0d50d 100644 --- a/t/lib/DBICTest/Schema/Artwork_to_Artist.pm +++ b/t/lib/DBICTest/Schema/Artwork_to_Artist.pm @@ -2,6 +2,7 @@ package # hide from PAUSE DBICTest::Schema::Artwork_to_Artist; use base qw/DBICTest::BaseResult/; +use Carp qw/confess/; __PACKAGE__->table('artwork_to_artist'); __PACKAGE__->add_columns( @@ -18,4 +19,48 @@ __PACKAGE__->set_primary_key(qw/artwork_cd_id artist_id/); __PACKAGE__->belongs_to('artwork', 'DBICTest::Schema::Artwork', 'artwork_cd_id'); __PACKAGE__->belongs_to('artist', 'DBICTest::Schema::Artist', 'artist_id'); +__PACKAGE__->belongs_to('artist_test_m2m', 'DBICTest::Schema::Artist', + 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 @missing_args = grep { ! defined $args->{$_} } + qw/self_alias foreign_alias self_resultsource foreign_relname/; + confess "Required arguments not supplied to custom rel coderef: @missing_args\n" + if @missing_args; + + return ( + { "$args->{foreign_alias}.artistid" => { -ident => "$args->{self_alias}.artist_id" }, + "$args->{foreign_alias}.rank" => { '<' => 10 }, + }, + $args->{self_rowobj} && { + "$args->{foreign_alias}.artistid" => $args->{self_rowobj}->artist_id, + "$args->{foreign_alias}.rank" => { '<' => 10 }, + } + ); + } +); + +__PACKAGE__->belongs_to('artist_test_m2m_noopt', 'DBICTest::Schema::Artist', + 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 @missing_args = grep { ! defined $args->{$_} } + qw/self_alias foreign_alias self_resultsource foreign_relname/; + confess "Required arguments not supplied to custom rel coderef: @missing_args\n" + if @missing_args; + + return ( + { "$args->{foreign_alias}.artistid" => { -ident => "$args->{self_alias}.artist_id" }, + "$args->{foreign_alias}.rank" => { '<' => 10 }, + } + ); + } +); + 1;