Sha256: 6131e47952f3ea81d7284f7f0bcbb1c7b468f3980093fd99aaea5f9b7e6db074

Contents?: true

Size: 1.92 KB

Versions: 6

Compression:

Stored size: 1.92 KB

Contents

require 'cases/helper_sqlserver'

class ExecuteProcedureTestSQLServer < ActiveRecord::TestCase

  it 'execute a simple procedure' do
    tables = ActiveRecord::Base.execute_procedure :sp_tables
    assert_instance_of Array, tables
    assert tables.first.respond_to?(:keys)
  end

  it 'take parameter arguments' do
    tables = ActiveRecord::Base.execute_procedure :sp_tables, 'sst_datatypes'
    table_info = tables.first
    assert_equal 1, tables.size
    assert_equal (ENV['ARUNIT_DB_NAME'] || 'activerecord_unittest'), table_info['TABLE_QUALIFIER'], "Table Info: #{table_info.inspect}"
    assert_equal 'TABLE', table_info['TABLE_TYPE'], "Table Info: #{table_info.inspect}"
  end

  it 'allow multiple result sets to be returned' do
    skip 'For whatever reason, this stored procedure is only returning 1 result so this test does not work' if defined? JRUBY_VERSION
    results1, results2 = ActiveRecord::Base.execute_procedure('sp_helpconstraint','accounts')
    assert_instance_of Array, results1
    assert results1.first.respond_to?(:keys)
    assert results1.first['Object Name']
    assert_instance_of Array, results2
    assert results2.first.respond_to?(:keys)
    assert results2.first['constraint_name']
    assert results2.first['constraint_type']
  end

  it 'take named parameter arguments' do
    tables = ActiveRecord::Base.execute_procedure :sp_tables, table_name: 'tables', table_owner: 'sys'
    table_info = tables.first
    assert_equal 1, tables.size
    assert_equal (ENV['ARUNIT_DB_NAME'] || 'activerecord_unittest'), table_info['TABLE_QUALIFIER'], "Table Info: #{table_info.inspect}"
    assert_equal 'VIEW', table_info['TABLE_TYPE'], "Table Info: #{table_info.inspect}"
  end

  it 'uses the proper timezone' do
    date_proc = connection.execute_procedure('my_getutcdate').first['utcdate']
    date_base = connection.select_value('select GETUTCDATE()')
    assert_equal date_base.change(usec: 0), date_proc.change(usec: 0)
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
activerecord-jdbcsqlserver-adapter-52.0.0 test/cases/execute_procedure_test_sqlserver.rb
activerecord-jdbcsqlserver-adapter-51.1.0 test/cases/execute_procedure_test_sqlserver.rb
activerecord-jdbcsqlserver-adapter-50.1.0 test/cases/execute_procedure_test_sqlserver.rb
activerecord-jdbcsqlserver-adapter-51.0.1 test/cases/execute_procedure_test_sqlserver.rb
activerecord-jdbcsqlserver-adapter-51.0.0 test/cases/execute_procedure_test_sqlserver.rb
activerecord-jdbcsqlserver-adapter-50.0.0 test/cases/execute_procedure_test_sqlserver.rb