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.
This commit is contained in:
parent
bfbae885b2
commit
23300f4440
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user