X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F71mysql.t;h=1e31e8cc2d1fb49fcec80fdac51ff610e06ea41a;hb=ac0c082542;hp=de1e2fda72d8c7e03c4ea993fd176ace8970cec3;hpb=4ca1fd6fb90a85f5138d11f580394025aa20ea4a;p=dbsrgits%2FDBIx-Class.git diff --git a/t/71mysql.t b/t/71mysql.t index de1e2fd..1e31e8c 100644 --- a/t/71mysql.t +++ b/t/71mysql.t @@ -210,30 +210,7 @@ lives_ok { $cd->set_producers ([ $producer ]) } 'set_relationship doesnt die'; INNER JOIN `artist` `artist` ON `artist`.`artistid` = `me`.`artist` )', [], - 'overriden default join type works', - ); -} - -{ - # Test support for straight joins - my $cdsrc = $schema->source('CD'); - my $artrel_info = $cdsrc->relationship_info ('artist'); - $cdsrc->add_relationship( - 'straight_artist', - $artrel_info->{class}, - $artrel_info->{cond}, - { %{$artrel_info->{attrs}}, join_type => 'straight' }, - ); - is_same_sql_bind ( - $cdsrc->resultset->search({}, { prefetch => 'straight_artist' })->as_query, - '( - SELECT `me`.`cdid`, `me`.`artist`, `me`.`title`, `me`.`year`, `me`.`genreid`, `me`.`single_track`, - `straight_artist`.`artistid`, `straight_artist`.`name`, `straight_artist`.`rank`, `straight_artist`.`charfield` - FROM cd `me` - STRAIGHT_JOIN `artist` `straight_artist` ON `straight_artist`.`artistid` = `me`.`artist` - )', - [], - 'straight joins correctly supported for mysql' + 'overridden default join type works', ); } @@ -264,7 +241,7 @@ NULLINSEARCH: { my $artist = $artist2_rs->single; - is $artist => undef + is $artist => undef, => 'Nothing Found!'; } @@ -319,20 +296,34 @@ NULLINSEARCH: { ); } - my $ac = $schema->resultset('Artist')->count_rs; - my $old_count = $ac->next; - $ac->reset; + is ($rs->count, 10, '10 artists present'); my $orig_debug = $schema->storage->debug; $schema->storage->debug(1); - my $query_count = 0; + my $query_count; $schema->storage->debugcb(sub { $query_count++ }); + + $query_count = 0; $complex_rs->delete; - $schema->storage->debugcb(undef); - $schema->storage->debug($orig_debug); is ($query_count, 1, 'One delete query fired'); - is ($old_count - $ac->next, 10, '10 Artists correctly deleted'); + is ($rs->count, 0, '10 Artists correctly deleted'); + + $rs->create({ + name => 'baby_with_cd', + cds => [ { title => 'babeeeeee', year => 2013 } ], + }); + is ($rs->count, 1, 'Artist with cd created'); + + $query_count = 0; + $schema->resultset('CD')->search_related('artist', + { 'artist.name' => { -like => 'baby_with_%' } } + )->delete; + is ($query_count, 1, 'And one more delete query fired'); + is ($rs->count, 0, 'Artist with cd deleted'); + + $schema->storage->debugcb(undef); + $schema->storage->debug($orig_debug); } ZEROINSEARCH: {