diff options
author | eileencodes <eileencodes@gmail.com> | 2014-03-31 19:25:31 -0400 |
---|---|---|
committer | eileencodes <eileencodes@gmail.com> | 2014-03-31 19:28:44 -0400 |
commit | a116afe5365dfaa3e5f98749f98090872c7aaecc (patch) | |
tree | f0adcbdd935a0bfa1aa960b338eb35398bf7c077 | |
parent | a67293638e0c9022e69b67ae89bc5bca70f70efd (diff) | |
download | rails-a116afe5365dfaa3e5f98749f98090872c7aaecc.tar.gz rails-a116afe5365dfaa3e5f98749f98090872c7aaecc.tar.bz2 rails-a116afe5365dfaa3e5f98749f98090872c7aaecc.zip |
add test to compare sql statements in delete_all query
delete_all sql if an association is not loaded should behave
the same as if the association is loaded. This test ensures
the SQL statements are exactly the same.
-rw-r--r-- | activerecord/test/cases/associations/has_many_associations_test.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index 49d3301044..3dfb0a27ba 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -22,6 +22,8 @@ require 'models/engine' require 'models/categorization' require 'models/minivan' require 'models/speedometer' +require 'models/reference' +require 'models/job' class HasManyAssociationsTestForReorderWithJoinDependency < ActiveRecord::TestCase fixtures :authors, :posts, :comments @@ -39,7 +41,7 @@ class HasManyAssociationsTest < ActiveRecord::TestCase fixtures :accounts, :categories, :companies, :developers, :projects, :developers_projects, :topics, :authors, :comments, :people, :posts, :readers, :taggings, :cars, :essays, - :categorizations + :categorizations, :jobs def setup Client.destroyed_client_ids.clear @@ -107,6 +109,19 @@ class HasManyAssociationsTest < ActiveRecord::TestCase assert_equal 0, Bulb.count, "bulbs should have been deleted using :delete_all strategy" end + def test_delete_all_on_association_is_the_same_as_not_loaded + author = authors :david + author.thinking_posts.create!(:body => "test") + author.reload + expected_sql = capture_sql { author.thinking_posts.delete_all } + + author.thinking_posts.create!(:body => "test") + author.reload + author.thinking_posts.inspect + loaded_sql = capture_sql { author.thinking_posts.delete_all } + assert_equal(expected_sql, loaded_sql) + end + def test_building_the_associated_object_with_implicit_sti_base_class firm = DependentFirm.new company = firm.companies.build |