aboutsummaryrefslogtreecommitdiffstats
path: root/test/collectors/test_bind_collector.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/collectors/test_bind_collector.rb')
-rw-r--r--test/collectors/test_bind_collector.rb71
1 files changed, 0 insertions, 71 deletions
diff --git a/test/collectors/test_bind_collector.rb b/test/collectors/test_bind_collector.rb
deleted file mode 100644
index 877aa20043..0000000000
--- a/test/collectors/test_bind_collector.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# frozen_string_literal: true
-require 'helper'
-require 'arel/collectors/bind'
-
-module Arel
- module Collectors
- class TestBindCollector < Arel::Test
- def setup
- @conn = FakeRecord::Base.new
- @visitor = Visitors::ToSql.new @conn.connection
- super
- end
-
- def collect node
- @visitor.accept(node, Collectors::Bind.new)
- end
-
- def compile node
- collect(node).value
- end
-
- def ast_with_binds bv
- table = Table.new(:users)
- manager = Arel::SelectManager.new table
- manager.where(table[:age].eq(bv))
- manager.where(table[:name].eq(bv))
- manager.ast
- end
-
- def test_leaves_binds
- node = Nodes::BindParam.new
- list = compile node
- assert_equal node, list.first
- assert_equal node.class, list.first.class
- end
-
- def test_adds_strings
- bv = Nodes::BindParam.new
- list = compile ast_with_binds bv
- assert_operator list.length, :>, 0
- assert_equal bv, list.grep(Nodes::BindParam).first
- assert_equal bv.class, list.grep(Nodes::BindParam).first.class
- end
-
- def test_substitute_binds
- bv = Nodes::BindParam.new
- collector = collect ast_with_binds bv
-
- values = collector.value
-
- offsets = values.map.with_index { |v,i|
- [v,i]
- }.find_all { |(v,_)| Nodes::BindParam === v }.map(&:last)
-
- list = collector.substitute_binds ["hello", "world"]
- assert_equal "hello", list[offsets[0]]
- assert_equal "world", list[offsets[1]]
-
- assert_equal 'SELECT FROM "users" WHERE "users"."age" = hello AND "users"."name" = world', list.join
- end
-
- def test_compile
- bv = Nodes::BindParam.new
- collector = collect ast_with_binds bv
-
- sql = collector.compile ["hello", "world"]
- assert_equal 'SELECT FROM "users" WHERE "users"."age" = hello AND "users"."name" = world', sql
- end
- end
- end
-end