fix mssql
[dbsrgits/DBIx-Class.git] / t / sqlmaker / op_dt.t
index 3c22901..93446cd 100644 (file)
@@ -5,6 +5,7 @@ use Test::More;
 use Test::Exception;
 
 use lib qw(t/lib);
+use DBICTest::RunMode;
 use DBIC::SqlMakerTest;
 use DateTime;
 use DBIx::Class::SQLMaker::MSSQL;
@@ -619,11 +620,10 @@ my @tests = (
       hri    => [{ date => '2014-12-14 12:12:12' }],
     },
     mssql => {
-      select => "(DATEADD(year, ?, me.created_on))",
+      select => "(DATEADD(year, CAST(? AS INTEGER), me.created_on))",
       where => "me.id = ?",
-      bind   => [[unknown_col, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
+      bind   => [[{sqlt_datatype => 'integer'}, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
       hri    => [{ date => '2014-12-14 12:12:12.000' }],
-      skip   => 'need working bindtypes',
     },
     mysql => {
       select => "DATE_ADD(me.created_on, INTERVAL ? YEAR)",
@@ -651,11 +651,10 @@ my @tests = (
       hri    => [{ date => '2012-03-14 12:12:12' }],
     },
     mssql => {
-      select => "(DATEADD(month, ?, me.created_on))",
+      select => "(DATEADD(month, CAST(? AS INTEGER), me.created_on))",
       where => "me.id = ?",
-      bind   => [[unknown_col, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
+      bind   => [[{sqlt_datatype => 'integer'}, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
       hri    => [{ date => '2012-03-14 12:12:12.000' }],
-      skip   => 'need working bindtypes',
     },
     mysql => {
       select => "DATE_ADD(me.created_on, INTERVAL ? MONTH)",
@@ -683,11 +682,10 @@ my @tests = (
       hri    => [{ date => '2011-12-17 12:12:12' }],
     },
     mssql => {
-      select => "(DATEADD(dayofyear, ?, me.created_on))",
+      select => "(DATEADD(dayofyear, CAST(? AS INTEGER), me.created_on))",
       where => "me.id = ?",
-      bind   => [[unknown_col, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
+      bind   => [[{sqlt_datatype => 'integer'}, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
       hri    => [{ date => '2011-12-17 12:12:12.000' }],
-      skip   => 'need working bindtypes',
     },
     mysql => {
       select => "DATE_ADD(me.created_on, INTERVAL ? DAY)",
@@ -715,11 +713,10 @@ my @tests = (
       hri    => [{ date => '2011-12-14 15:12:12' }],
     },
     mssql => {
-      select => "(DATEADD(hour, ?, me.created_on))",
+      select => "(DATEADD(hour, CAST(? AS INTEGER), me.created_on))",
       where => "me.id = ?",
-      bind   => [[unknown_col, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
+      bind   => [[{sqlt_datatype => 'integer'}, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
       hri    => [{ date => '2011-12-14 15:12:12.000' }],
-      skip   => 'need working bindtypes',
     },
     mysql => {
       select => "DATE_ADD(me.created_on, INTERVAL ? HOUR)",
@@ -747,11 +744,10 @@ my @tests = (
       hri    => [{ date => '2011-12-14 12:15:12' }],
     },
     mssql => {
-      select => "(DATEADD(minute, ?, me.created_on))",
+      select => "(DATEADD(minute, CAST(? AS INTEGER), me.created_on))",
       where => "me.id = ?",
-      bind   => [[unknown_col, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
+      bind   => [[{sqlt_datatype => 'integer'}, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
       hri    => [{ date => '2011-12-14 12:15:12.000' }],
-      skip   => 'need working bindtypes',
     },
     mysql => {
       select => "DATE_ADD(me.created_on, INTERVAL ? MINUTE)",
@@ -779,11 +775,10 @@ my @tests = (
       hri    => [{ date => '2011-12-14 12:12:15' }],
     },
     mssql => {
-      select => "(DATEADD(second, ?, me.created_on))",
+      select => "(DATEADD(second, CAST(? AS INTEGER), me.created_on))",
       where => "me.id = ?",
-      bind   => [[unknown_col, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
+      bind   => [[{sqlt_datatype => 'integer'}, 3], [{dbic_colname => 'me.id', sqlt_datatype => 'integer'} => 2 ]],
       hri    => [{ date => '2011-12-14 12:12:15.000' }],
-      skip   => 'need working bindtypes',
     },
     mysql => {
       select => "DATE_ADD(me.created_on, INTERVAL ? SECOND)",
@@ -811,11 +806,10 @@ my @tests = (
       hri    => [{ date => '2011-12-15 12:12:15' }],
     },
     mssql => {
-      select => "(DATEADD(second, ?, (DATEADD(dayofyear, ?, me.created_on))))",
+      select => "(DATEADD(second, CAST(? AS INTEGER), (DATEADD(dayofyear, CAST(? AS INTEGER), me.created_on))))",
       where => "me.id = ?",
-      bind   => [[unknown_col, 3 ], [unknown_col, 1], [{dbic_colname => 'me.id', sqlt_datatype => 'integer' }, 2]],
+      bind   => [[{sqlt_datatype => 'integer'}, 3 ], [{sqlt_datatype => 'integer'}, 1], [{dbic_colname => 'me.id', sqlt_datatype => 'integer' }, 2]],
       hri    => [{ date => '2011-12-15 12:12:15.000' }],
-      skip   => 'need working bindtypes',
     },
     mysql => {
       select => "DATE_ADD(DATE_ADD(me.created_on, INTERVAL ? DAY), INTERVAL ? SECOND)",