From 05b5bb12270b32e094c1c879273e0978dabe5b3b Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 8 Apr 2014 12:03:52 -0700 Subject: bind visitor working with collector object --- test/helper.rb | 9 +++++++++ test/visitors/test_bind_visitor.rb | 22 ++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/test/helper.rb b/test/helper.rb index 1292c09a08..6e8ac836fc 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -11,3 +11,12 @@ class Object gsub(/\s+/, ' ').strip.must_equal other.gsub(/\s+/, ' ').strip end end + +module Arel + class Test < MiniTest::Test + def assert_like expected, actual + assert_equal expected.gsub(/\s+/, ' ').strip, + actual.gsub(/\s+/, ' ').strip + end + end +end diff --git a/test/visitors/test_bind_visitor.rb b/test/visitors/test_bind_visitor.rb index 2bfd03c861..4563fddfd1 100644 --- a/test/visitors/test_bind_visitor.rb +++ b/test/visitors/test_bind_visitor.rb @@ -4,8 +4,14 @@ require 'support/fake_record' module Arel module Visitors - class TestBindVisitor < Minitest::Test - + class TestBindVisitor < Arel::Test + attr_reader :collector + + def setup + @collector = Collectors::SQLString.new + super + end + ## # Tests visit_Arel_Nodes_Assignment correctly # substitutes binds with values from block @@ -19,8 +25,12 @@ module Arel }.new Table.engine.connection assignment = um.ast.values[0] - actual = visitor.accept(assignment) { "replace" } - actual.must_be_like "\"name\" = replace" + actual = visitor.accept(assignment, collector) { |collector| + collector << "replace" + } + assert actual + value = actual.value + assert_like "\"name\" = replace", value end def test_visitor_yields_on_binds @@ -33,7 +43,7 @@ module Arel bp = Nodes::BindParam.new 'omg' called = false - visitor.accept(bp) { called = true } + visitor.accept(bp, collector) { |collector| called = true } assert called end @@ -49,7 +59,7 @@ module Arel called = false assert_raises(TypeError) { - visitor.accept(bp) { called = true } + visitor.accept(bp, collector) { called = true } } refute called end -- cgit v1.2.3