diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-08-19 10:37:50 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-08-19 10:37:50 -0700 |
commit | 6451188abf647d6aa855d22db8d2d62a2b2c4542 (patch) | |
tree | 09cf0a6a93db2c3bfeafbeefb70c90d54bab5e79 /spec/arel | |
parent | 6b851c686faefe54efce0857f8b7b7b0c04bb673 (diff) | |
download | rails-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.rb | 24 | ||||
-rw-r--r-- | spec/arel/table_spec.rb | 4 |
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" |