X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fdq%2Fadd_relationship_expr.t;fp=t%2Fdq%2Fadd_relationship_expr.t;h=b6ca14b7afabadb103ed5a3478cf7ec7e15ad474;hb=70a55c691f64fc687c059aabce68c580643217b7;hp=0000000000000000000000000000000000000000;hpb=abbbc000ca52863ce2323fa381656e7730fbe334;p=dbsrgits%2FDBIx-Class.git diff --git a/t/dq/add_relationship_expr.t b/t/dq/add_relationship_expr.t new file mode 100644 index 0000000..b6ca14b --- /dev/null +++ b/t/dq/add_relationship_expr.t @@ -0,0 +1,35 @@ +use strict; +use warnings; + +use Test::More; +use Test::Exception; +use Test::Warn; +use lib qw(t/lib); +use DBICTest::Schema::Artist; +use Data::Query::ExprDeclare; +BEGIN { + DBICTest::Schema::Artist->has_many( + cds2 => 'DBICTest::Schema::CD', + expr { $_->foreign->artist == $_->self->artistid } + ); + DBICTest::Schema::Artist->has_many( + cds2_pre2k => 'DBICTest::Schema::CD', + expr { + $_->foreign->artist == $_->self->artistid + & $_->foreign->year < 2000 + } + ); +} +use DBICTest; +use DBIC::SqlMakerTest; + +my $schema = DBICTest->init_schema(); + +my $mccrae = $schema->resultset('Artist') + ->find({ name => 'Caterwauler McCrae' }); + +is($mccrae->cds2->count, 3, 'CDs returned from expr join'); + +is($mccrae->cds2_pre2k->count, 2, 'CDs returned from expr w/cond'); + +done_testing;