From 6451188abf647d6aa855d22db8d2d62a2b2c4542 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 19 Aug 2010 10:37:50 -0700 Subject: adding outer joins --- spec/arel/select_manager_spec.rb | 24 ++++++++++++++++++++++++ spec/arel/table_spec.rb | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'spec/arel') 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" -- cgit v1.2.3