Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #428: mysql_connection_timeout_controller_test.rb

File mysql_connection_timeout_controller_test.rb, 1.0 kB (added by wv, 1 year ago)

Test-case for MySQL server has gone away

Line 
1 require File.dirname(__FILE__) + '/../test_helper'
2
3 class MysqlConnectionTimeoutControllerTest < Test::Unit::TestCase
4   def setup
5   end
6
7   def test_mysql_connection_after_timeout
8     assert ActiveRecord::Base.connection.active?
9     ActiveRecord::Base.connection.update("set @@wait_timeout=1")
10     sleep 2
11     assert ActiveRecord::Base.connection.select_all("select 1=1")
12   end
13
14   def test_mysql_connection_after_timeout_with_manual_reconnect
15     assert ActiveRecord::Base.connection.active?
16     ActiveRecord::Base.connection.update("set @@wait_timeout=1")
17     sleep 2
18     ActiveRecord::Base.connection.reconnect!
19     assert ActiveRecord::Base.connection.select_all("select 1=1")
20   end
21
22   def test_mysql_connection_after_timeout_with_verify
23     assert ActiveRecord::Base.connection.active?
24     ActiveRecord::Base.connection.update("set @@wait_timeout=1")
25     sleep 2
26     ActiveRecord::Base.connection.verify!(0)
27     assert ActiveRecord::Base.connection.select_all("select 1=1")
28   end
29
30 end