aboutsummaryrefslogtreecommitdiffstats
path: root/test/visitors/test_oracle12.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/visitors/test_oracle12.rb')
-rw-r--r--test/visitors/test_oracle12.rb22
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