diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-05-19 10:16:43 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-05-19 10:16:43 -0300 |
commit | 61b2d2242208ac9997ff6b73d92d3fc6c26f2171 (patch) | |
tree | 31294bcfd8d05b3b92669c1aa4460302870d3a76 /test | |
parent | f6ab8cf4bb3040d7244d58729cb44f412bd1c40a (diff) | |
parent | dc2c2c3e95102124bb6157b8f66649e6546cbdda (diff) | |
download | rails-61b2d2242208ac9997ff6b73d92d3fc6c26f2171.tar.gz rails-61b2d2242208ac9997ff6b73d92d3fc6c26f2171.tar.bz2 rails-61b2d2242208ac9997ff6b73d92d3fc6c26f2171.zip |
Merge pull request #272 from jduff/rebased_outer_join
Add convenience #outer_join
Diffstat (limited to 'test')
-rw-r--r-- | test/test_select_manager.rb | 22 | ||||
-rw-r--r-- | test/test_table.rb | 14 |
2 files changed, 36 insertions, 0 deletions
diff --git a/test/test_select_manager.rb b/test/test_select_manager.rb index 611bba10c2..09608ea71e 100644 --- a/test/test_select_manager.rb +++ b/test/test_select_manager.rb @@ -579,6 +579,28 @@ module Arel end end + describe 'outer join' do + it 'responds to join' do + left = Table.new :users + right = left.alias + predicate = left[:id].eq(right[:id]) + manager = Arel::SelectManager.new Table.engine + + manager.from left + manager.outer_join(right).on(predicate) + manager.to_sql.must_be_like %{ + SELECT FROM "users" + LEFT OUTER JOIN "users" "users_2" + ON "users"."id" = "users_2"."id" + } + end + + it 'noops on nil' do + manager = Arel::SelectManager.new Table.engine + manager.outer_join(nil).must_equal manager + end + end + describe 'joins' do it 'returns join sql' do table = Table.new :users diff --git a/test/test_table.rb b/test/test_table.rb index b4c2a65fcd..286ad10167 100644 --- a/test/test_table.rb +++ b/test/test_table.rb @@ -96,6 +96,20 @@ module Arel } end end + + describe 'join' do + it 'creates an outer join' do + right = @relation.alias + predicate = @relation[:id].eq(right[:id]) + mgr = @relation.outer_join(right).on(predicate) + + mgr.to_sql.must_be_like %{ + SELECT FROM "users" + LEFT OUTER JOIN "users" "users_2" + ON "users"."id" = "users_2"."id" + } + end + end end describe 'group' do |