class CompositePrimaryKeyTest

Public Class Methods

table_name() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 354
def self.table_name
  "uber_barcodes"
end

Public Instance Methods

setup() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 326
def setup
  @connection = ActiveRecord::Base.connection
  @connection.schema_cache.clear!
  @connection.create_table(:uber_barcodes, primary_key: ["region", "code"], force: true) do |t|
    t.string :region
    t.integer :code
  end
  @connection.create_table(:barcodes_reverse, primary_key: ["code", "region"], force: true) do |t|
    t.string :region
    t.integer :code
  end
end
teardown() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 339
def teardown
  @connection.drop_table(:uber_barcodes, if_exists: true)
end
test_collectly_dump_composite_primary_key() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 364
def test_collectly_dump_composite_primary_key
  schema = dump_table_schema "uber_barcodes"
  assert_match %r{create_table "uber_barcodes", primary_key: \["region", "code"\]}, schema
end
test_composite_primary_key() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 343
def test_composite_primary_key
  assert_equal ["region", "code"], @connection.primary_keys("uber_barcodes")
end
test_composite_primary_key_out_of_order() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 347
def test_composite_primary_key_out_of_order
  skip if current_adapter?(:SQLite3Adapter)
  assert_equal ["code", "region"], @connection.primary_keys("barcodes_reverse")
end
test_dumping_composite_primary_key_out_of_order() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 369
def test_dumping_composite_primary_key_out_of_order
  skip if current_adapter?(:SQLite3Adapter)
  schema = dump_table_schema "barcodes_reverse"
  assert_match %r{create_table "barcodes_reverse", primary_key: \["code", "region"\]}, schema
end
test_primary_key_issues_warning() click to toggle source
# File activerecord/test/cases/primary_keys_test.rb, line 352
def test_primary_key_issues_warning
  model = Class.new(ActiveRecord::Base) do
    def self.table_name
      "uber_barcodes"
    end
  end
  warning = capture(:stderr) do
    assert_nil model.primary_key
  end
  assert_match(/WARNING: Active Record does not support composite primary key\./, warning)
end