aboutsummaryrefslogtreecommitdiffstats
path: root/test/visitors/test_join_sql.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/visitors/test_join_sql.rb')
-rw-r--r--test/visitors/test_join_sql.rb21
1 files changed, 14 insertions, 7 deletions
diff --git a/test/visitors/test_join_sql.rb b/test/visitors/test_join_sql.rb
index 8253fe5ab4..b672f88ecf 100644
--- a/test/visitors/test_join_sql.rb
+++ b/test/visitors/test_join_sql.rb
@@ -4,15 +4,21 @@ module Arel
module Visitors
describe 'the join_sql visitor' do
before do
- @visitor = JoinSql.new Table.engine
+ @visitor = ToSql.new Table.engine
+ @visitor.extend(JoinSql)
+ end
+
+ it 'should visit string join' do
+ sql = @visitor.accept Nodes::StringJoin.new('omg')
+ sql.must_be_like "'omg'"
end
describe 'inner join' do
it 'should visit left if left is a join' do
t = Table.new :users
- join = Nodes::InnerJoin.new t, t, Nodes::On.new(t[:id])
- j2 = Nodes::InnerJoin.new join, t, Nodes::On.new(t[:id])
- @visitor.accept(j2).must_be_like %{
+ sm = t.select_manager
+ sm.join(t).on(t[:id]).join(t).on(t[:id])
+ sm.join_sql.must_be_like %{
INNER JOIN "users" ON "users"."id"
INNER JOIN "users" ON "users"."id"
}
@@ -22,9 +28,10 @@ module Arel
describe 'outer join' do
it 'should visit left if left is a join' do
t = Table.new :users
- join = Nodes::OuterJoin.new t, t, Nodes::On.new(t[:id])
- j2 = Nodes::OuterJoin.new join, t, Nodes::On.new(t[:id])
- @visitor.accept(j2).must_be_like %{
+ sm = t.select_manager
+ sm.join(t, Nodes::OuterJoin).on(t[:id]).join(
+ t, Nodes::OuterJoin).on(t[:id])
+ sm.join_sql.must_be_like %{
LEFT OUTER JOIN "users" ON "users"."id"
LEFT OUTER JOIN "users" ON "users"."id"
}