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