Parameterize pagination
[dbsrgits/DBIx-Class.git] / t / prefetch / with_limit.t
index 977a3f9..046678e 100644 (file)
@@ -8,6 +8,9 @@ use Test::Exception;
 use lib qw(t/lib);
 use DBICTest;
 use DBIC::SqlMakerTest;
+use DBIx::Class::SQLMaker::LimitDialects;
+
+my $ROWS = DBIx::Class::SQLMaker::LimitDialects->__rows_bindtype;
 
 my $schema = DBICTest->init_schema();
 
@@ -67,7 +70,7 @@ is_same_sql_bind (
         WHERE   artwork.cd_id IS NULL
              OR tracks.title != ?
         GROUP BY me.artistid, me.name, me.artistid + ?
-        ORDER BY name DESC LIMIT 3
+        ORDER BY name DESC LIMIT ?
       ) me
       LEFT JOIN cd cds
         ON cds.artist = me.artistid
@@ -85,6 +88,7 @@ is_same_sql_bind (
     $bind_int_resolved->(),  # inner select
     $bind_vc_resolved->(), # inner where
     $bind_int_resolved->(),  # inner group_by
+    [ $ROWS => 3 ],
     $bind_vc_resolved->(), # outer where
     $bind_int_resolved->(),  # outer group_by
   ],
@@ -179,7 +183,7 @@ is_same_sql_bind (
           FROM cd me
           JOIN artist artist ON artist.artistid = me.artist
         WHERE ( ( artist.name = ? AND me.year = ? ) )
-        LIMIT 15
+        LIMIT ?
       ) me
       LEFT JOIN track tracks
         ON tracks.cd = me.cdid
@@ -188,12 +192,13 @@ is_same_sql_bind (
     WHERE ( ( artist.name = ? AND me.year = ? ) )
     ORDER BY tracks.cd
   )',
-  [ map {
-    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'artist.name' }
-      => 'foo' ],
-    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'me.year' }
-      => 2010 ],
-  } (1,2)],
+  [
+    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'artist.name' } => 'foo' ],
+    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'me.year' } => 2010 ],
+    [ $ROWS         => 15    ],
+    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'artist.name' } => 'foo' ],
+    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'me.year' } => 2010 ],
+  ],
   'No grouping of non-multiplying resultsets',
 );