aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Fuchs <svenfuchs@artweb-design.de>2010-12-07 10:05:25 +0100
committerSven Fuchs <svenfuchs@artweb-design.de>2010-12-07 10:05:25 +0100
commit54d62de817f19dfaa206584516ecaedbdbbaea98 (patch)
treef15b1da46b1d0fa5a90712500af0f85bbfd6aac2
parent4bec8c8e9e21c87a6beb22423fefbd23a7f8fb99 (diff)
downloadrails-54d62de817f19dfaa206584516ecaedbdbbaea98.tar.gz
rails-54d62de817f19dfaa206584516ecaedbdbbaea98.tar.bz2
rails-54d62de817f19dfaa206584516ecaedbdbbaea98.zip
tests for passing a subquery to #in and #not_in
-rw-r--r--test/visitors/test_to_sql.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/visitors/test_to_sql.rb b/test/visitors/test_to_sql.rb
index bae291d87c..3c9fc95a0b 100644
--- a/test/visitors/test_to_sql.rb
+++ b/test/visitors/test_to_sql.rb
@@ -137,6 +137,15 @@ module Arel
}
end
+ it 'can handle subqueries' do
+ table = Table.new(:users)
+ subquery = table.project(:id).where(table[:name].eq('Aaron'))
+ node = @attr.in subquery
+ @visitor.accept(node).must_be_like %{
+ "users"."id" IN (SELECT id FROM "users" WHERE "users"."name" = 'Aaron')
+ }
+ end
+
it 'uses the same column for escaping values' do
@attr = Table.new(:users)[:name]
visitor = Class.new(ToSql) do
@@ -185,6 +194,15 @@ module Arel
}
end
+ it 'can handle subqueries' do
+ table = Table.new(:users)
+ subquery = table.project(:id).where(table[:name].eq('Aaron'))
+ node = @attr.not_in subquery
+ @visitor.accept(node).must_be_like %{
+ "users"."id" NOT IN (SELECT id FROM "users" WHERE "users"."name" = 'Aaron')
+ }
+ end
+
it 'uses the same column for escaping values' do
@attr = Table.new(:users)[:name]
visitor = Class.new(ToSql) do