diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/visitors/test_bind_visitor.rb | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/test/visitors/test_bind_visitor.rb b/test/visitors/test_bind_visitor.rb index 92e5d1612c..dbcfb67df5 100644 --- a/test/visitors/test_bind_visitor.rb +++ b/test/visitors/test_bind_visitor.rb @@ -1,9 +1,28 @@ require 'helper' require 'arel/visitors/bind_visitor' +require 'support/fake_record' module Arel module Visitors - class TestBindVisitor < MiniTest::Unit::TestCase + class TestBindVisitor < MiniTest::Unit::TestCase + + ## + # Tests visit_Arel_Nodes_Assignment correctly + # substitutes binds with values from block + def test_assignment_binds_are_substituted + table = Table.new(:users) + um = Arel::UpdateManager.new Table.engine + bp = Nodes::BindParam.new '?' + um.set [[table[:name], bp]] + visitor = Class.new(Arel::Visitors::ToSql) { + include Arel::Visitors::BindVisitor + }.new Table.engine.connection + + assignment = um.ast.values[0] + actual = visitor.accept(assignment) { "replace" } + actual.must_be_like "\"name\" = replace" + end + def test_visitor_yields_on_binds visitor = Class.new(Arel::Visitors::Visitor) { def initialize omg |