diff options
Diffstat (limited to 'test/visitors/test_oracle12.rb')
-rw-r--r-- | test/visitors/test_oracle12.rb | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/test/visitors/test_oracle12.rb b/test/visitors/test_oracle12.rb index df0f01b30b..5dac2994cf 100644 --- a/test/visitors/test_oracle12.rb +++ b/test/visitors/test_oracle12.rb @@ -2,9 +2,10 @@ require 'helper' module Arel module Visitors - describe 'the oracle visitor' do + describe 'the oracle12 visitor' do before do - @visitor = Oracle12.new Table.engine.connection_pool + @visitor = Oracle12.new Table.engine.connection + @table = Table.new(:users) end def compile node @@ -29,12 +30,13 @@ module Arel end describe 'locking' do - it 'removes limit when locking' do + it 'generates ArgumentError if limit and lock are used' do stmt = Nodes::SelectStatement.new stmt.limit = Nodes::Limit.new(10) stmt.lock = Nodes::Lock.new(Arel.sql('FOR UPDATE')) - sql = compile(stmt) - sql.must_be_like "SELECT FOR UPDATE" + assert_raises ArgumentError do + sql = compile(stmt) + end end it 'defaults to FOR UPDATE when locking' do @@ -42,6 +44,16 @@ module Arel compile(node).must_be_like "FOR UPDATE" end end + + describe "Nodes::BindParam" do + it "increments each bind param" do + query = @table[:name].eq(Arel::Nodes::BindParam.new) + .and(@table[:id].eq(Arel::Nodes::BindParam.new)) + compile(query).must_be_like %{ + "users"."name" = :a1 AND "users"."id" = :a2 + } + end + end end end end |