aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/primary_keys_test.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2015-06-25 16:52:33 +0900
committerRyuta Kamizono <kamipo@gmail.com>2015-09-20 06:43:00 +0900
commitab12859947a1faeac3df93ebeb54efc572cf1803 (patch)
treed4484375825a2f7262e2b44ed99bb67988d73356 /activerecord/test/cases/primary_keys_test.rb
parent2e7415bf71b017180d92ac6fdcafe215cc9eddb6 (diff)
downloadrails-ab12859947a1faeac3df93ebeb54efc572cf1803.tar.gz
rails-ab12859947a1faeac3df93ebeb54efc572cf1803.tar.bz2
rails-ab12859947a1faeac3df93ebeb54efc572cf1803.zip
Correctly dump composite primary key
Example: create_table :barcodes, primary_key: ["region", "code"] do |t| t.string :region t.integer :code end
Diffstat (limited to 'activerecord/test/cases/primary_keys_test.rb')
-rw-r--r--activerecord/test/cases/primary_keys_test.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/activerecord/test/cases/primary_keys_test.rb b/activerecord/test/cases/primary_keys_test.rb
index 0745a37ee9..66c28c4958 100644
--- a/activerecord/test/cases/primary_keys_test.rb
+++ b/activerecord/test/cases/primary_keys_test.rb
@@ -241,6 +241,33 @@ class PrimaryKeyAnyTypeTest < ActiveRecord::TestCase
end
end
+class CompositePrimaryKeyTest < ActiveRecord::TestCase
+ include SchemaDumpingHelper
+
+ self.use_transactional_tests = false
+
+ def setup
+ @connection = ActiveRecord::Base.connection
+ @connection.create_table(:barcodes, primary_key: ["region", "code"], force: true) do |t|
+ t.string :region
+ t.integer :code
+ end
+ end
+
+ def teardown
+ @connection.drop_table(:barcodes, if_exists: true)
+ end
+
+ def test_composite_primary_key
+ assert_equal ["region", "code"], @connection.primary_keys("barcodes")
+ end
+
+ def test_collectly_dump_composite_primary_key
+ schema = dump_table_schema "barcodes"
+ assert_match %r{create_table "barcodes", primary_key: \["region", "code"\]}, schema
+ end
+end
+
if current_adapter?(:MysqlAdapter, :Mysql2Adapter)
class PrimaryKeyWithAnsiQuotesTest < ActiveRecord::TestCase
self.use_transactional_tests = false