aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/abstract_unit.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/abstract_unit.rb')
-rwxr-xr-xactiverecord/test/abstract_unit.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/activerecord/test/abstract_unit.rb b/activerecord/test/abstract_unit.rb
index 1bd2f6baaf..70487980c5 100755
--- a/activerecord/test/abstract_unit.rb
+++ b/activerecord/test/abstract_unit.rb
@@ -29,6 +29,19 @@ class Test::Unit::TestCase #:nodoc:
assert_equal expected.to_s, actual.to_s, message
end
end
+
+ def assert_no_queries
+ ActiveRecord::Base.connection.class.class_eval do
+ self.query_count = 0
+ alias_method :execute, :execute_with_query_counting
+ end
+ yield
+ ensure
+ ActiveRecord::Base.connection.class.class_eval do
+ alias_method :execute, :execute_without_query_counting
+ end
+ assert_equal 0, ActiveRecord::Base.connection.query_count, "1 or more queries were executed"
+ end
end
def current_adapter?(type)
@@ -36,5 +49,14 @@ def current_adapter?(type)
ActiveRecord::Base.connection.instance_of?(ActiveRecord::ConnectionAdapters.const_get(type))
end
+ActiveRecord::Base.connection.class.class_eval do
+ cattr_accessor :query_count
+ alias_method :execute_without_query_counting, :execute
+ def execute_with_query_counting(sql, name = nil)
+ self.query_count += 1
+ execute_without_query_counting(sql, name)
+ end
+end
+
#ActiveRecord::Base.logger = Logger.new(STDOUT)
#ActiveRecord::Base.colorize_logging = false