aboutsummaryrefslogtreecommitdiffstats
path: root/spec/arel
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-08-19 10:37:50 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-08-19 10:37:50 -0700
commit6451188abf647d6aa855d22db8d2d62a2b2c4542 (patch)
tree09cf0a6a93db2c3bfeafbeefb70c90d54bab5e79 /spec/arel
parent6b851c686faefe54efce0857f8b7b7b0c04bb673 (diff)
downloadrails-6451188abf647d6aa855d22db8d2d62a2b2c4542.tar.gz
rails-6451188abf647d6aa855d22db8d2d62a2b2c4542.tar.bz2
rails-6451188abf647d6aa855d22db8d2d62a2b2c4542.zip
adding outer joins
Diffstat (limited to 'spec/arel')
-rw-r--r--spec/arel/select_manager_spec.rb24
-rw-r--r--spec/arel/table_spec.rb4
2 files changed, 26 insertions, 2 deletions
diff --git a/spec/arel/select_manager_spec.rb b/spec/arel/select_manager_spec.rb
index 74e2db408b..331d9714a7 100644
--- a/spec/arel/select_manager_spec.rb
+++ b/spec/arel/select_manager_spec.rb
@@ -23,6 +23,30 @@ module Arel
end
describe 'select manager' do
+ describe 'joins' do
+ it 'returns join sql' do
+ table = Table.new :users
+ aliaz = table.alias
+ manager = Arel::SelectManager.new Table.engine
+ manager.from Nodes::InnerJoin.new(table, aliaz, table[:id].eq(aliaz[:id]))
+ manager.join_sql.should be_like %{
+ "users" INNER JOIN "users" "users_2" "users"."id" = "users_2"."id"
+ }
+ check manager.joins(manager).should == manager.join_sql
+ end
+
+ it 'returns outer join sql' do
+ table = Table.new :users
+ aliaz = table.alias
+ manager = Arel::SelectManager.new Table.engine
+ manager.from Nodes::OuterJoin.new(table, aliaz, table[:id].eq(aliaz[:id]))
+ manager.join_sql.should be_like %{
+ "users" OUTER JOIN "users" "users_2" "users"."id" = "users_2"."id"
+ }
+ check manager.joins(manager).should == manager.join_sql
+ end
+ end
+
describe 'delete' do
it "copies from" do
engine = EngineProxy.new Table.engine
diff --git a/spec/arel/table_spec.rb b/spec/arel/table_spec.rb
index 58ccc9e7be..702608ed85 100644
--- a/spec/arel/table_spec.rb
+++ b/spec/arel/table_spec.rb
@@ -33,14 +33,14 @@ module Arel
describe 'take' do
it "should add a limit" do
manager = @relation.take 1
- manager.project '*'
+ manager.project SqlLiteral.new '*'
manager.to_sql.should be_like %{ SELECT * FROM "users" LIMIT 1 }
end
end
describe 'project' do
it 'can project' do
- manager = @relation.project '*'
+ manager = @relation.project SqlLiteral.new '*'
manager.to_sql.should be_like %{
SELECT *
FROM "users"