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
|
module ActiveRecord
|
||||||
class RelationMutationTest < ActiveRecord::TestCase
|
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|
|
(Relation::MULTI_VALUE_METHODS - [:references, :extending, :order, :unscope, :select]).each do |method|
|
||||||
test "##{method}!" do
|
test "##{method}!" do
|
||||||
assert relation.public_send("#{method}!", :foo).equal?(relation)
|
assert relation.public_send("#{method}!", :foo).equal?(relation)
|
||||||
@ -167,5 +134,10 @@ def relation
|
|||||||
relation.skip_query_cache!
|
relation.skip_query_cache!
|
||||||
assert relation.skip_query_cache_value
|
assert relation.skip_query_cache_value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def relation
|
||||||
|
@relation ||= Relation.new(FakeKlass, Post.arel_table, Post.predicate_builder)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -8,24 +8,6 @@ module ActiveRecord
|
|||||||
class RelationTest < ActiveRecord::TestCase
|
class RelationTest < ActiveRecord::TestCase
|
||||||
fixtures :posts, :comments, :authors, :author_addresses, :ratings
|
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
|
def test_construction
|
||||||
relation = Relation.new(FakeKlass, :b, nil)
|
relation = Relation.new(FakeKlass, :b, nil)
|
||||||
assert_equal FakeKlass, relation.klass
|
assert_equal FakeKlass, relation.klass
|
||||||
@ -90,7 +72,7 @@ def test_tree_is_not_traversed
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_table_name_delegates_to_klass
|
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
|
assert_equal "posts", relation.table_name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -276,3 +276,35 @@ class ConditionalStiPost < Post
|
|||||||
|
|
||||||
class SubConditionalStiPost < ConditionalStiPost
|
class SubConditionalStiPost < ConditionalStiPost
|
||||||
end
|
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