diff options
author | Tekin Suleyman <tekin@tekin.co.uk> | 2008-11-06 21:06:40 +0000 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-11-07 07:50:30 +0000 |
commit | 32a5cfcd7f8d14407f0c00ce2cdc82b1b568438e (patch) | |
tree | a2211b53356146da3f1723b86a0ded532fe29621 | |
parent | 26978e3ce84eda4e659fe9724e89c51efdd01781 (diff) | |
download | rails-32a5cfcd7f8d14407f0c00ce2cdc82b1b568438e.tar.gz rails-32a5cfcd7f8d14407f0c00ce2cdc82b1b568438e.tar.bz2 rails-32a5cfcd7f8d14407f0c00ce2cdc82b1b568438e.zip |
Added tests for HABTM associations with counter_sql
Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#1102 state:committed]
-rw-r--r-- | activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb b/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb index 2949f1d304..b5bedf3704 100644 --- a/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb @@ -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) |