X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FSchema%2FTrack.pm;h=b82545a25defa6a6aebd33b4ca6ca8b647546d69;hb=4a233f3019d2baa4bf2abee0c873c74d5cdf3a11;hp=fb9e5c52b9e8c59a4ab092a65f26ee154833c448;hpb=6c4f4d69a8ec24b5e76bef0eb9c0d837d8e694ab;p=dbsrgits%2FDBIx-Class.git diff --git a/t/lib/DBICTest/Schema/Track.pm b/t/lib/DBICTest/Schema/Track.pm index fb9e5c5..b82545a 100644 --- a/t/lib/DBICTest/Schema/Track.pm +++ b/t/lib/DBICTest/Schema/Track.pm @@ -1,8 +1,17 @@ package # hide from PAUSE DBICTest::Schema::Track; +use warnings; +use strict; + use base qw/DBICTest::BaseResult/; -__PACKAGE__->load_components(qw/InflateColumn::DateTime Ordered/); +use Carp qw/confess/; + +__PACKAGE__->load_components(qw{ + +DBICTest::DeployComponent + InflateColumn::DateTime + Ordered +}); __PACKAGE__->table('track'); __PACKAGE__->add_columns( @@ -63,20 +72,38 @@ __PACKAGE__->belongs_to( { join_type => 'left' }, ); -__PACKAGE__->might_have ( - next_track => __PACKAGE__, +__PACKAGE__->has_many ( + next_tracks => __PACKAGE__, 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}.cd" => { -ident => "$args->{self_alias}.cd" }, "$args->{foreign_alias}.position" => { '>' => { -ident => "$args->{self_alias}.position" } }, }, $args->{self_rowobj} && { - "$args->{foreign_alias}.cd" => $args->{self_rowobj}->cd, - "$args->{foreign_alias}.position" => { '>' => $args->{self_rowobj}->position }, + "$args->{foreign_alias}.cd" => $args->{self_rowobj}->get_column('cd'), + "$args->{foreign_alias}.position" => { '>' => $args->{self_rowobj}->pos }, } ) } ); +our $hook_cb; + +sub sqlt_deploy_hook { + my $class = shift; + + $hook_cb->($class, @_) if $hook_cb; + $class->next::method(@_) if $class->next::can; +} + 1;