class Mysql2StoredProcedureTest

Public Instance Methods

setup() click to toggle source
# File activerecord/test/cases/adapters/mysql2/sp_test.rb, line 10
def setup
  @connection = ActiveRecord::Base.connection
  unless ActiveRecord::Base.connection.version >= "5.6.0"
    skip("no stored procedure support")
  end
end
test_multi_results() click to toggle source

Test that MySQL allows multiple results for stored procedures

In MySQL 5.6, CLIENT_MULTI_RESULTS is enabled by default. dev.mysql.com/doc/refman/5.6/en/call.html

# File activerecord/test/cases/adapters/mysql2/sp_test.rb, line 21
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 'Mysql2Adapter.select_rows'"
end
test_multi_results_from_find_by_sql() click to toggle source
# File activerecord/test/cases/adapters/mysql2/sp_test.rb, line 33
def test_multi_results_from_find_by_sql
  topics = Topic.find_by_sql "CALL topics(3);"
  assert_equal 3, topics.size
  assert @connection.active?, "Bad connection use by 'Mysql2Adapter.select'"
end
test_multi_results_from_select_one() click to toggle source
# File activerecord/test/cases/adapters/mysql2/sp_test.rb, line 27
def test_multi_results_from_select_one
  row = @connection.select_one("CALL topics(1);")
  assert_equal "David", row["author_name"]
  assert @connection.active?, "Bad connection use by 'Mysql2Adapter.select_one'"
end