Sha256: 6ac01e4c26cc6ceb69b35327208f2a426b14d1f2684eb25f378c66a21ca8a8fe

Contents?: true

Size: 1.77 KB

Versions: 22

Compression:

Stored size: 1.77 KB

Contents

require 'cases/sqlserver_helper'

class SchemaDumperTestSqlserver < ActiveRecord::TestCase
  
  setup :find_all_tables
  
  context 'For primary keys' do

    should 'honor nonstandards' do
      table_dump('movies') do |output|
        match = output.match(%r{create_table "movies"(.*)do})
        assert_not_nil(match, "nonstandardpk table not found")
        assert_match %r(:primary_key => "movieid"), match[1], "non-standard primary key not preserved"
      end
    end
    
  end
  
  context 'For integers' do
    
    should 'include limit constraint that match logic for smallint and bigint in #extract_limit' do
      table_dump('integer_limits') do |output|
        assert_match %r{c_int_1.*:limit => 2}, output
        assert_match %r{c_int_2.*:limit => 2}, output
        assert_match %r{c_int_3.*}, output
        assert_match %r{c_int_4.*}, output
        assert_no_match %r{c_int_3.*:limit}, output
        assert_no_match %r{c_int_4.*:limit}, output
        assert_match %r{c_int_5.*:limit => 8}, output
        assert_match %r{c_int_6.*:limit => 8}, output
        assert_match %r{c_int_7.*:limit => 8}, output
        assert_match %r{c_int_8.*:limit => 8}, output
      end
    end
    
  end
  
  
  
  private
  
  def find_all_tables
    @all_tables ||= ActiveRecord::Base.connection.tables
  end
  
  def standard_dump(ignore_tables = [])
    stream = StringIO.new
    ActiveRecord::SchemaDumper.ignore_tables = [*ignore_tables]
    ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
    stream.string
  end
  
  def table_dump(*table_names)
    stream = StringIO.new
    ActiveRecord::SchemaDumper.ignore_tables = @all_tables-table_names
    ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
    yield stream.string
    stream.string
  end
  
end

Version data entries

22 entries across 22 versions & 6 rubygems

Version Path
aq1018-2000-2008-adapter-0.0.1 test/cases/schema_dumper_test_sqlserver.rb
aq1018-sqlserver-2000-2008-adpater-0.0.2 test/cases/schema_dumper_test_sqlserver.rb
artpop-2000-2005-adapter-2.2.15 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.0 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.1 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.10 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.11 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.12 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.13 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.14 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.15 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.16 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.2 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.3 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.4 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.5 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.6 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.7 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.8 test/cases/schema_dumper_test_sqlserver.rb
rails-sqlserver-2000-2005-adapter-2.2.9 test/cases/schema_dumper_test_sqlserver.rb