diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-10-20 14:02:23 -0600 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-10-20 14:02:23 -0600 |
commit | 72fba7db413561cf293178d5df0708c9380356fb (patch) | |
tree | 8a38fef3f866800edbe9a110d460410ca3ed9c77 /activerecord/test/cases/adapters/mysql/sp_test.rb | |
parent | ee865eb244c8db11dcfbadbce0994d3c6488e7ec (diff) | |
parent | d39b6f77fc75790b1b2b3c5201bb037645d01483 (diff) | |
download | rails-72fba7db413561cf293178d5df0708c9380356fb.tar.gz rails-72fba7db413561cf293178d5df0708c9380356fb.tar.bz2 rails-72fba7db413561cf293178d5df0708c9380356fb.zip |
Merge pull request #21932 from kamipo/add_stored_procedure_test_in_mysql2
Add stored procedure test in mysql2
Diffstat (limited to 'activerecord/test/cases/adapters/mysql/sp_test.rb')
-rw-r--r-- | activerecord/test/cases/adapters/mysql/sp_test.rb | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/activerecord/test/cases/adapters/mysql/sp_test.rb b/activerecord/test/cases/adapters/mysql/sp_test.rb index a3d5110032..579c3273c6 100644 --- a/activerecord/test/cases/adapters/mysql/sp_test.rb +++ b/activerecord/test/cases/adapters/mysql/sp_test.rb @@ -1,15 +1,29 @@ require "cases/helper" require 'models/topic' +require 'models/reply' -class StoredProcedureTest < ActiveRecord::MysqlTestCase +class MysqlStoredProcedureTest < ActiveRecord::MysqlTestCase fixtures :topics + def setup + @connection = ActiveRecord::Base.connection + end + # Test that MySQL allows multiple results for stored procedures - if defined?(Mysql) && Mysql.const_defined?(:CLIENT_MULTI_RESULTS) + # + # In MySQL 5.6, CLIENT_MULTI_RESULTS is enabled by default. + # http://dev.mysql.com/doc/refman/5.6/en/call.html + if ActiveRecord::Base.connection.version >= '5.6.0' || Mysql.const_defined?(:CLIENT_MULTI_RESULTS) + def test_multi_results + rows = @connection.select_rows('CALL ten();') + assert_equal 10, rows[0][0].to_i, "ten() did not return 10 as expected: #{rows.inspect}" + assert @connection.active?, "Bad connection use by 'MysqlAdapter.select_rows'" + end + def test_multi_results_from_find_by_sql - topics = Topic.find_by_sql 'CALL topics();' - assert_equal 1, topics.size - assert ActiveRecord::Base.connection.active?, "Bad connection use by 'MysqlAdapter.select'" + topics = Topic.find_by_sql 'CALL topics(3);' + assert_equal 3, topics.size + assert @connection.active?, "Bad connection use by 'MysqlAdapter.select'" end end end |