X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FSchema%2FArtwork.pm;h=d9ddc332e1db9aaf6c83489948914bf4a5777a24;hb=78b3d153ad874085ee183cfa6ad827089adde583;hp=10e07ce37fbf551310a52985f628224d40bbef82;hpb=d563309646cd5a6d156ffb3d601f9d914926831b;p=dbsrgits%2FDBIx-Class.git diff --git a/t/lib/DBICTest/Schema/Artwork.pm b/t/lib/DBICTest/Schema/Artwork.pm index 10e07ce..d9ddc33 100644 --- a/t/lib/DBICTest/Schema/Artwork.pm +++ b/t/lib/DBICTest/Schema/Artwork.pm @@ -1,12 +1,17 @@ package # hide from PAUSE DBICTest::Schema::Artwork; -use base qw/DBIx::Class::Core/; +use warnings; +use strict; + +use base 'DBICTest::BaseResult'; +use DBICTest::Util 'check_customcond_args'; __PACKAGE__->table('cd_artwork'); __PACKAGE__->add_columns( 'cd_id' => { data_type => 'integer', + is_nullable => 0, }, ); __PACKAGE__->set_primary_key('cd_id'); @@ -16,4 +21,27 @@ __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 { + # 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}.artwork_cd_id" => { -ident => "$args->{self_alias}.cd_id" }, + }, + $args->{self_resultobj} && { + "$args->{foreign_alias}.artwork_cd_id" => $args->{self_resultobj}->cd_id, + } + ); + } +); +__PACKAGE__->many_to_many('artists_test_m2m2', 'artwork_to_artist_test_m2m', 'artist'); + 1;