X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F66relationship.t;h=48fcb2af79779825cf35eeea6a190ee7cce17252;hb=504870a5f5a33ba88c5c22cbfa41579433dd49f3;hp=798e6600cc9403e4d16ed531d4b6b059c19dbc53;hpb=f623c6ee5de411b8a231abf80f65b33a117878a3;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/66relationship.t b/t/66relationship.t index 798e660..48fcb2a 100644 --- a/t/66relationship.t +++ b/t/66relationship.t @@ -8,7 +8,7 @@ use DBICTest; my $schema = DBICTest->init_schema(); -plan tests => 70; +plan tests => 74; # has_a test my $cd = $schema->resultset("CD")->find(4); @@ -35,10 +35,15 @@ is( $cds[1]->title, 'Forkful of bees', 'search_related with abstract query ok' ) if ($INC{'DBICTest/HelperRels.pm'}) { $artist->add_to_cds({ title => 'Big Flop', year => 2005 }); } else { - $artist->create_related( 'cds', { + my $big_flop = $artist->create_related( 'cds', { title => 'Big Flop', year => 2005, } ); + + SKIP:{ + skip "Can't fix right now", 1 if $DBIx::Class::VERSION < 0.09; + lives_ok { $big_flop->genre} "Don't throw exception when col is not loaded after insert"; + }; } my $big_flop_cd = ($artist->search_related('cds'))[3]; @@ -284,3 +289,13 @@ cmp_ok($relinfo->{attrs}{is_foreign_key_constraint}, '==', 1, "is_foreign_key_co my $rs_overridden = $schema->source('ForceForeign'); my $relinfo_with_attr = $rs_overridden->relationship_info ('cd_3'); cmp_ok($relinfo_with_attr->{attrs}{is_foreign_key_constraint}, '==', 0, "is_foreign_key_constraint defined for belongs_to relationships with attr."); + +# check that relationships below left join relationships are forced to left joins +my $cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => 'demographic' } }); +is($cds->count, 1, "subjoins under left joins force_left (string)"); + +$cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => [ 'demographic' ] } }); +is($cds->count, 1, "subjoins under left joins force_left (arrayref)"); + +$cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => { demographic => {} } } }); +is($cds->count, 1, "subjoins under left joins force_left (hashref)");