8 use DBICTest::Schema::Artist;
9 use Data::Query::ExprDeclare;
11 DBICTest::Schema::Artist->has_many(
12 cds2 => 'DBICTest::Schema::CD',
13 expr { $_->foreign->artist == $_->self->artistid }
15 DBICTest::Schema::Artist->has_many(
16 cds2_pre2k => 'DBICTest::Schema::CD',
18 $_->foreign->artist == $_->self->artistid
19 & $_->foreign->year < 2000
24 use DBIC::SqlMakerTest;
26 my $schema = DBICTest->init_schema();
28 my $mccrae = $schema->resultset('Artist')
29 ->find({ name => 'Caterwauler McCrae' });
31 is($mccrae->cds2->count, 3, 'CDs returned from expr join');
33 is($mccrae->cds2_pre2k->count, 2, 'CDs returned from expr w/cond');
35 $schema->source($_)->resultset_class('DBIx::Class::ResultSet::WithDQMethods')
38 my $cds = $schema->resultset('CD')
39 ->where(expr { $_->artist->name eq 'Caterwauler McCrae' });
41 is($cds->count, 3, 'CDs via join injection');
43 my $tags = $schema->resultset('Tag')
44 ->where(expr { $_->cd->artist->name eq 'Caterwauler McCrae' });
46 is($tags->count, 5, 'Tags via two step join injection');