From 42b39ae3f2991692672364d7e09b1e4002e66261 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Fri, 18 Jan 2008 07:30:42 +0000 Subject: Move tests to cases git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8660 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/test/cases/query_cache_test.rb | 124 ++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 activerecord/test/cases/query_cache_test.rb (limited to 'activerecord/test/cases/query_cache_test.rb') diff --git a/activerecord/test/cases/query_cache_test.rb b/activerecord/test/cases/query_cache_test.rb new file mode 100644 index 0000000000..242223161c --- /dev/null +++ b/activerecord/test/cases/query_cache_test.rb @@ -0,0 +1,124 @@ +require 'abstract_unit' +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, :categories, :posts, :categories_posts + + def test_find_queries + assert_queries(2) { Task.find(1); Task.find(1) } + end + + def test_find_queries_with_cache + Task.cache do + assert_queries(1) { Task.find(1); Task.find(1) } + end + end + + def test_count_queries_with_cache + Task.cache do + assert_queries(1) { Task.count; Task.count } + end + end + + def test_query_cache_dups_results_correctly + Task.cache do + now = Time.now.utc + task = Task.find 1 + assert_not_equal now, task.starting + task.starting = now + task.reload + assert_not_equal now, task.starting + end + end + + def test_cache_is_flat + Task.cache do + Topic.columns # don't count this query + assert_queries(1) { Topic.find(1); Topic.find(1); } + end + + ActiveRecord::Base.cache do + assert_queries(1) { Task.find(1); Task.find(1) } + end + end + + def test_cache_does_not_wrap_string_results_in_arrays + Task.cache do + assert_instance_of String, Task.connection.select_value("SELECT count(*) AS count_all FROM tasks") + end + end +end + +uses_mocha 'QueryCacheExpiryTest' do + +class QueryCacheExpiryTest < ActiveSupport::TestCase + fixtures :tasks + + def test_find + Task.connection.expects(:clear_query_cache).times(1) + + assert !Task.connection.query_cache_enabled + Task.cache do + assert Task.connection.query_cache_enabled + Task.find(1) + + Task.uncached do + assert !Task.connection.query_cache_enabled + Task.find(1) + end + + assert Task.connection.query_cache_enabled + end + assert !Task.connection.query_cache_enabled + end + + def test_update + Task.connection.expects(:clear_query_cache).times(2) + + Task.cache do + Task.find(1).save! + end + end + + def test_destroy + Task.connection.expects(:clear_query_cache).times(2) + + Task.cache do + Task.find(1).destroy + end + end + + def test_insert + ActiveRecord::Base.connection.expects(:clear_query_cache).times(2) + + Task.cache do + 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 -- cgit v1.2.3