Retire DBIC::DebugObj, replace with $dbictest_schema->is_executed_sql_bind()
[dbsrgits/DBIx-Class.git] / t / row / find_one_has_many.t
index 5e1e953..ea7767f 100644 (file)
@@ -4,8 +4,6 @@ use warnings;
 use Test::More;
 use lib qw(t/lib);
 use DBICTest;
-use DBIC::DebugObj;
-use DBIC::SqlMakerTest;
 
 my $schema = DBICTest->init_schema();
 
@@ -15,20 +13,20 @@ $schema->resultset('CD')->delete;
 my $artist  = $schema->resultset("Artist")->create({ artistid => 21, name => 'Michael Jackson', rank => 20 });
 my $cd = $artist->create_related('cds', { year => 1975, title => 'Compilation from 1975' });
 
-my ($sql, @bind);
-local $schema->storage->{debug} = 1;
-local $schema->storage->{debugobj} = DBIC::DebugObj->new(\$sql, \@bind);
-
-my $find_cd = $artist->find_related('cds',{title => 'Compilation from 1975'});
-
-s/^'//, s/'\z// for @bind; # why does DBIC::DebugObj not do this?
-
-is_same_sql_bind (
-  $sql,
-  \@bind,
-  'SELECT me.cdid, me.artist, me.title, me.year, me.genreid, me.single_track FROM cd me WHERE ( ( me.artist = ? AND me.title = ? ) ) ORDER BY year ASC',
-  [21, 'Compilation from 1975'],
-  'find_related only uses foreign key condition once',
-);
+$schema->is_executed_sql_bind(sub {
+  my $find_cd = $artist->find_related('cds',{title => 'Compilation from 1975'});
+}, [
+  [
+    ' SELECT me.cdid, me.artist, me.title, me.year, me.genreid, me.single_track
+        FROM cd me
+      WHERE me.artist = ? AND me.title = ?
+      ORDER BY year ASC
+    ',
+    [ { dbic_colname => "me.artist", sqlt_datatype => "integer" }
+      => 21 ],
+    [ { dbic_colname => "me.title",  sqlt_datatype => "varchar", sqlt_size => 100 }
+      => "Compilation from 1975" ],
+  ]
+], 'find_related only uses foreign key condition once' );
 
 done_testing;