提交 23300f44 编写于 作者: R Ryuta Kamizono

Extract `FakeKlass` in `relation_test.rb` and `relation/mutation_test.rb`

`FakeKlass` in `relation_test.rb` and `relation/mutation_test.rb` are
almost the same.
上级 bfbae885
......@@ -3,39 +3,6 @@
module ActiveRecord
class RelationMutationTest < ActiveRecord::TestCase
FakeKlass = Struct.new(:table_name, :name) do
extend ActiveRecord::Delegation::DelegateCache
inherited self
def connection
Post.connection
end
def relation_delegate_class(klass)
self.class.relation_delegate_class(klass)
end
def attribute_alias?(name)
false
end
def sanitize_sql(sql)
sql
end
def sanitize_sql_for_order(sql)
sql
end
def arel_attribute(name, table)
table[name]
end
end
def relation
@relation ||= Relation.new FakeKlass.new("posts"), Post.arel_table, Post.predicate_builder
end
(Relation::MULTI_VALUE_METHODS - [:references, :extending, :order, :unscope, :select]).each do |method|
test "##{method}!" do
assert relation.public_send("#{method}!", :foo).equal?(relation)
......@@ -167,5 +134,10 @@ def relation
relation.skip_query_cache!
assert relation.skip_query_cache_value
end
private
def relation
@relation ||= Relation.new(FakeKlass, Post.arel_table, Post.predicate_builder)
end
end
end
......@@ -8,24 +8,6 @@ module ActiveRecord
class RelationTest < ActiveRecord::TestCase
fixtures :posts, :comments, :authors, :author_addresses, :ratings
FakeKlass = Struct.new(:table_name, :name) do
extend ActiveRecord::Delegation::DelegateCache
inherited self
def self.connection
Post.connection
end
def self.table_name
"fake_table"
end
def self.sanitize_sql_for_order(sql)
sql
end
end
def test_construction
relation = Relation.new(FakeKlass, :b, nil)
assert_equal FakeKlass, relation.klass
......@@ -90,7 +72,7 @@ def test_tree_is_not_traversed
end
def test_table_name_delegates_to_klass
relation = Relation.new(FakeKlass.new("posts"), :b, Post.predicate_builder)
relation = Relation.new(FakeKlass, :b, Post.predicate_builder)
assert_equal "posts", relation.table_name
end
......
......@@ -276,3 +276,35 @@ class ConditionalStiPost < Post
class SubConditionalStiPost < ConditionalStiPost
end
class FakeKlass
extend ActiveRecord::Delegation::DelegateCache
inherited self
class << self
def connection
Post.connection
end
def table_name
"posts"
end
def attribute_alias?(name)
false
end
def sanitize_sql(sql)
sql
end
def sanitize_sql_for_order(sql)
sql
end
def arel_attribute(name, table)
table[name]
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册