X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FSchema%2FArtwork.pm;h=351d9dde38e310c20ffdb7946e5569b6108d278d;hb=1327f05075385498a3e6213c068d2f4e765fb0a4;hp=849096b7fb82b150210931caeea8a40206c84799;hpb=660cf1be74795a5a5784f413741816413a724c1a;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/lib/DBICTest/Schema/Artwork.pm b/t/lib/DBICTest/Schema/Artwork.pm index 849096b..351d9dd 100644 --- a/t/lib/DBICTest/Schema/Artwork.pm +++ b/t/lib/DBICTest/Schema/Artwork.pm @@ -2,11 +2,13 @@ package # hide from PAUSE DBICTest::Schema::Artwork; use base qw/DBICTest::BaseResult/; +use Carp qw/confess/; __PACKAGE__->table('cd_artwork'); __PACKAGE__->add_columns( 'cd_id' => { data_type => 'integer', + is_nullable => 0, }, ); __PACKAGE__->set_primary_key('cd_id'); @@ -16,4 +18,32 @@ __PACKAGE__->has_many('images', 'DBICTest::Schema::Image', 'artwork_id'); __PACKAGE__->has_many('artwork_to_artist', 'DBICTest::Schema::Artwork_to_Artist', 'artwork_cd_id'); __PACKAGE__->many_to_many('artists', 'artwork_to_artist', 'artist'); +# both to test manytomany with custom rel +__PACKAGE__->many_to_many('artists_test_m2m', 'artwork_to_artist', 'artist_test_m2m'); +__PACKAGE__->many_to_many('artists_test_m2m_noopt', 'artwork_to_artist', 'artist_test_m2m_noopt'); + +# other test to manytomany +__PACKAGE__->has_many('artwork_to_artist_test_m2m', 'DBICTest::Schema::Artwork_to_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}.artwork_cd_id" => { -ident => "$args->{self_alias}.cd_id" }, + }, + $args->{self_rowobj} && { + "$args->{foreign_alias}.artwork_cd_id" => $args->{self_rowobj}->cd_id, + } + ); + } +); +__PACKAGE__->many_to_many('artists_test_m2m2', 'artwork_to_artist_test_m2m', 'artist'); + 1;