Let SQLMaker rs_attr 'for' support string literals
[dbsrgits/DBIx-Class.git] / t / sqlmaker / core.t
index 2cf88ba..7312c98 100644 (file)
@@ -69,6 +69,36 @@ my $sql_maker = $schema->storage->sql_maker;
   );
 }
 
+# Tests base class for => \'FOO' actually generates proper query. for =>
+# 'READ'|'SHARE' is tested in db-specific subclasses
+# we have to instantiate base because SQLMaker::SQLite disables _lock_select
+{
+  require DBIx::Class::SQLMaker;
+  my $sa = DBIx::Class::SQLMaker->new;
+  {
+    my ($sql, @bind) = $sa->select('foo', '*', {}, { for => 'update' } );
+    is_same_sql_bind(
+      $sql,
+      \@bind,
+      'SELECT * FROM foo FOR UPDATE',
+      [],
+    );
+  }
+
+  {
+    my ($sql, @bind) = $sa->select('bar', '*', {}, { for => \'baz' } );
+    is_same_sql_bind(
+      $sql,
+      \@bind,
+      'SELECT * FROM bar FOR baz',
+      [],
+    );
+  }
+
+}
+
+
+
 # Make sure the carp/croak override in SQLA works (via SQLMaker)
 my $file = quotemeta (__FILE__);
 throws_ok (sub {