mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Added tests for HABTM associations with counter_sql
Signed-off-by: Michael Koziarski <michael@koziarski.com> [#1102 state:committed]
This commit is contained in:
parent
26978e3ce8
commit
32a5cfcd7f
1 changed files with 23 additions and 0 deletions
|
@ -68,6 +68,16 @@ class DeveloperWithSymbolsForKeys < ActiveRecord::Base
|
|||
:foreign_key => "developer_id"
|
||||
end
|
||||
|
||||
class DeveloperWithCounterSQL < ActiveRecord::Base
|
||||
set_table_name 'developers'
|
||||
has_and_belongs_to_many :projects,
|
||||
:class_name => "DeveloperWithCounterSQL",
|
||||
:join_table => "developers_projects",
|
||||
:association_foreign_key => "project_id",
|
||||
:foreign_key => "developer_id",
|
||||
:counter_sql => 'SELECT COUNT(*) AS count_all FROM projects INNER JOIN developers_projects ON projects.id = developers_projects.project_id WHERE developers_projects.developer_id =#{id}'
|
||||
end
|
||||
|
||||
class HasAndBelongsToManyAssociationsTest < ActiveRecord::TestCase
|
||||
fixtures :accounts, :companies, :categories, :posts, :categories_posts, :developers, :projects, :developers_projects,
|
||||
:parrots, :pirates, :treasures, :price_estimates, :tags, :taggings
|
||||
|
@ -739,6 +749,19 @@ class HasAndBelongsToManyAssociationsTest < ActiveRecord::TestCase
|
|||
assert_nothing_raised { david.projects.count(:all, :conditions => '1=1') }
|
||||
end
|
||||
|
||||
def test_count
|
||||
david = Developer.find(1)
|
||||
assert_equal 2, david.projects.count
|
||||
end
|
||||
|
||||
def test_count_with_counter_sql
|
||||
developer = DeveloperWithCounterSQL.create(:name => 'tekin')
|
||||
developer.project_ids = [projects(:active_record).id]
|
||||
developer.save
|
||||
developer.reload
|
||||
assert_equal 1, developer.projects.count
|
||||
end
|
||||
|
||||
uses_mocha 'mocking Post.transaction' do
|
||||
def test_association_proxy_transaction_method_starts_transaction_in_association_class
|
||||
Post.expects(:transaction)
|
||||
|
|
Loading…
Reference in a new issue