5 require 'models/course'
6 require 'models/category'
10 class QueryCacheTest
< ActiveRecord
::TestCase
11 fixtures
:tasks, :topics, :categories, :posts, :categories_posts
14 assert_queries(2) { Task
.find(1); Task
.find(1) }
17 def test_find_queries_with_cache
19 assert_queries(1) { Task
.find(1); Task
.find(1) }
23 def test_count_queries_with_cache
25 assert_queries(1) { Task
.count
; Task
.count
}
29 def test_query_cache_dups_results_correctly
33 assert_not_equal now
, task
.starting
36 assert_not_equal now
, task
.starting
40 def test_cache_is_flat
42 Topic
.columns
# don't count this query
43 assert_queries(1) { Topic
.find(1); Topic
.find(1); }
46 ActiveRecord
::Base.cache
do
47 assert_queries(1) { Task
.find(1); Task
.find(1) }
51 def test_cache_does_not_wrap_string_results_in_arrays
53 assert_instance_of String
, Task
.connection
.select_value("SELECT count(*) AS count_all FROM tasks")
58 uses_mocha
'QueryCacheExpiryTest' do
60 class QueryCacheExpiryTest
< ActiveRecord
::TestCase
61 fixtures
:tasks, :posts, :categories, :categories_posts
64 Task
.connection
.expects(:clear_query_cache).times(1)
66 assert
!Task
.connection
.query_cache_enabled
68 assert Task
.connection
.query_cache_enabled
72 assert
!Task
.connection
.query_cache_enabled
76 assert Task
.connection
.query_cache_enabled
78 assert
!Task
.connection
.query_cache_enabled
82 Task
.connection
.expects(:clear_query_cache).times(2)
86 task
.starting
= Time
.now
.utc
92 Task
.connection
.expects(:clear_query_cache).times(2)
100 ActiveRecord
::Base.connection
.expects(:clear_query_cache).times(2)
107 def test_cache_is_expired_by_habtm_update
108 ActiveRecord
::Base.connection
.expects(:clear_query_cache).times(2)
109 ActiveRecord
::Base.cache
do
110 c
= Category
.find(:first)
111 p
= Post
.find(:first)
116 def test_cache_is_expired_by_habtm_delete
117 ActiveRecord
::Base.connection
.expects(:clear_query_cache).times(2)
118 ActiveRecord
::Base.cache
do
121 assert p
.categories
.any
?
122 p
.categories
.delete_all