aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/primary_keys_test.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2014-11-16 03:08:46 +0900
committerRyuta Kamizono <kamipo@gmail.com>2014-12-28 05:35:03 +0900
commit3cbfba6881fca957c62fecfc9467afd459f5a554 (patch)
treed12cebfa0267c370cf354ef1956b3c92e34cdbdb /activerecord/test/cases/primary_keys_test.rb
parentbaaad864e8cf3a3f2bf8722bd824635d31d8d280 (diff)
downloadrails-3cbfba6881fca957c62fecfc9467afd459f5a554.tar.gz
rails-3cbfba6881fca957c62fecfc9467afd459f5a554.tar.bz2
rails-3cbfba6881fca957c62fecfc9467afd459f5a554.zip
Support for any type primary key.
Diffstat (limited to 'activerecord/test/cases/primary_keys_test.rb')
-rw-r--r--activerecord/test/cases/primary_keys_test.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/activerecord/test/cases/primary_keys_test.rb b/activerecord/test/cases/primary_keys_test.rb
index f19a6ea5e3..dcd6045b72 100644
--- a/activerecord/test/cases/primary_keys_test.rb
+++ b/activerecord/test/cases/primary_keys_test.rb
@@ -195,6 +195,30 @@ class PrimaryKeyWithNoConnectionTest < ActiveRecord::TestCase
end
end
+class PrimaryKeyAnyTypeTest < ActiveRecord::TestCase
+ self.use_transactional_fixtures = false
+
+ class Barcode < ActiveRecord::Base
+ end
+
+ setup do
+ @connection = ActiveRecord::Base.connection
+ @connection.create_table(:barcodes, primary_key: "code", id: :string, limit: 42, force: true)
+ end
+
+ teardown do
+ @connection.execute("DROP TABLE IF EXISTS barcodes")
+ end
+
+ def test_any_type_primary_key
+ assert_equal "code", Barcode.primary_key
+
+ column_type = Barcode.type_for_attribute(Barcode.primary_key)
+ assert_equal :string, column_type.type
+ assert_equal 42, column_type.limit
+ end
+end
+
if current_adapter?(:MysqlAdapter, :Mysql2Adapter)
class PrimaryKeyWithAnsiQuotesTest < ActiveRecord::TestCase
self.use_transactional_fixtures = false