aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/query_cache_test.rb
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2008-01-18 01:55:11 +0000
committerRick Olson <technoweenie@gmail.com>2008-01-18 01:55:11 +0000
commit49794485b6629a04d7efe324d7c91c0845dbdc2f (patch)
treea2d228f4bd910f7a160d2e21714241f8c343efa8 /activerecord/test/query_cache_test.rb
parent3845de022b080642e87308471376911165506133 (diff)
downloadrails-49794485b6629a04d7efe324d7c91c0845dbdc2f.tar.gz
rails-49794485b6629a04d7efe324d7c91c0845dbdc2f.tar.bz2
rails-49794485b6629a04d7efe324d7c91c0845dbdc2f.zip
Ensure that modifying has_and_belongs_to_many actions clear the query cache. Closes #10840 [john.andrews]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8653 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/query_cache_test.rb')
-rw-r--r--activerecord/test/query_cache_test.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/activerecord/test/query_cache_test.rb b/activerecord/test/query_cache_test.rb
index 12b52f6a35..242223161c 100644
--- a/activerecord/test/query_cache_test.rb
+++ b/activerecord/test/query_cache_test.rb
@@ -3,10 +3,12 @@ require 'fixtures/topic'
require 'fixtures/reply'
require 'fixtures/task'
require 'fixtures/course'
+require 'fixtures/category'
+require 'fixtures/post'
class QueryCacheTest < ActiveSupport::TestCase
- fixtures :tasks, :topics
+ fixtures :tasks, :topics, :categories, :posts, :categories_posts
def test_find_queries
assert_queries(2) { Task.find(1); Task.find(1) }
@@ -99,6 +101,24 @@ class QueryCacheExpiryTest < ActiveSupport::TestCase
Task.create!
end
end
+
+ def test_cache_is_expired_by_habtm_update
+ ActiveRecord::Base.connection.expects(:clear_query_cache).times(2)
+ ActiveRecord::Base.cache do
+ c = Category.find(:first)
+ p = Post.find(:first)
+ p.categories << c
+ end
+ end
+
+ def test_cache_is_expired_by_habtm_delete
+ ActiveRecord::Base.connection.expects(:clear_query_cache).times(2)
+ ActiveRecord::Base.cache do
+ c = Category.find(:first)
+ p = Post.find(:first)
+ p.categories.delete_all
+ end
+ end
end
end