X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FSchema%2FTrack.pm;h=c27ba988bbd5d33194e4f489d4d6b08c27c631b7;hb=a126983e43f896c64e0ae7ba01c8a3d690d8125a;hp=496680035532f40105187337b8901f84ec895ed8;hpb=660cf1be74795a5a5784f413741816413a724c1a;p=dbsrgits%2FDBIx-Class.git diff --git a/t/lib/DBICTest/Schema/Track.pm b/t/lib/DBICTest/Schema/Track.pm index 4966800..c27ba98 100644 --- a/t/lib/DBICTest/Schema/Track.pm +++ b/t/lib/DBICTest/Schema/Track.pm @@ -1,4 +1,4 @@ -package # hide from PAUSE +package # hide from PAUSE DBICTest::Schema::Track; use base qw/DBICTest::BaseResult/; @@ -14,7 +14,7 @@ __PACKAGE__->add_columns( data_type => 'integer', }, 'position' => { - data_type => 'integer', + data_type => 'int', accessor => 'pos', }, 'title' => { @@ -40,10 +40,43 @@ __PACKAGE__->position_column ('position'); __PACKAGE__->grouping_column ('cd'); -__PACKAGE__->belongs_to( cd => 'DBICTest::Schema::CD' ); -__PACKAGE__->belongs_to( disc => 'DBICTest::Schema::CD' => 'cd'); +__PACKAGE__->belongs_to( cd => 'DBICTest::Schema::CD', undef, { + proxy => { cd_title => 'title' }, +}); +__PACKAGE__->belongs_to( disc => 'DBICTest::Schema::CD' => 'cd', { + proxy => 'year' +}); __PACKAGE__->might_have( cd_single => 'DBICTest::Schema::CD', 'single_track' ); __PACKAGE__->might_have( lyrics => 'DBICTest::Schema::Lyrics', 'track_id' ); +__PACKAGE__->belongs_to( + "year1999cd", + "DBICTest::Schema::Year1999CDs", + { "foreign.cdid" => "self.cd" }, + { join_type => 'left' }, # the relationship is of course optional +); +__PACKAGE__->belongs_to( + "year2000cd", + "DBICTest::Schema::Year2000CDs", + { "foreign.cdid" => "self.cd" }, + { join_type => 'left' }, +); + +__PACKAGE__->might_have ( + 'next_track', + __PACKAGE__, + sub { + my ( $me_alias, $rel_alias, $me_result_source, $rel_name, $optional_me_object ) = @_; + return + ({ "${rel_alias}.cd" => { '=', \"${me_alias}.cd" }, + "${rel_alias}.position" => { '>', \"${me_alias}.position" }, + }, + $optional_me_object && + { "${rel_alias}.cd" => $optional_me_object->cd, + "${rel_alias}.position" => { '>', $optional_me_object->position }, + }); + }, +); + 1;