Parameterize pagination
[dbsrgits/DBIx-Class.git] / t / sqlmaker / limit_dialects / generic_subq.t
index 8907808..21a38d6 100644 (file)
@@ -5,6 +5,13 @@ use Test::More;
 use lib qw(t/lib);
 use DBICTest;
 use DBIC::SqlMakerTest;
+use DBIx::Class::SQLMaker::LimitDialects;
+my ($ROWS, $TOTAL, $OFFSET) = (
+   DBIx::Class::SQLMaker::LimitDialects->__rows_bindtype,
+   DBIx::Class::SQLMaker::LimitDialects->__total_bindtype,
+   DBIx::Class::SQLMaker::LimitDialects->__offset_bindtype,
+);
+
 
 my $schema = DBICTest->init_schema;
 
@@ -34,11 +41,13 @@ is_same_sql_bind(
         SELECT COUNT(*)
           FROM books rownum__emulation
         WHERE rownum__emulation.title < me.title
-      ) < 2
+      ) < ?
     ORDER BY me.title
   )',
-  [ [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' }
-    => 'Library' ] ],
+  [
+    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' } => 'Library' ],
+    [ $ROWS => 2 ],
+  ],
 );
 
 is_deeply (
@@ -76,11 +85,14 @@ is_same_sql_bind(
         SELECT COUNT(*)
           FROM "books" "rownum__emulation"
         WHERE "rownum__emulation"."title" > "me"."title"
-      ) BETWEEN 1 AND 3
+      ) BETWEEN ? AND ?
     ORDER BY "title" DESC
   )',
-  [ [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' }
-    => 'Library' ] ],
+  [
+    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' } => 'Library' ],
+    [ $OFFSET => 1 ],
+    [ $TOTAL => 3 ],
+  ],
 );
 
 is_deeply (
@@ -112,11 +124,14 @@ is_same_sql_bind(
         SELECT COUNT(*)
           FROM "books" "rownum__emulation"
         WHERE "rownum__emulation"."title" < "me"."title"
-      ) BETWEEN 1 AND 4294967295
+      ) BETWEEN ? AND ?
     ORDER BY "title"
   )',
-  [ [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' }
-    => 'Library' ] ],
+  [
+    [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' } => 'Library' ],
+    [ $OFFSET => 1 ],
+    [ $TOTAL => 2147483647 ],
+  ],
 );
 
 is_deeply (