aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/inheritance_test.rb
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2015-12-02 13:31:20 +0100
committerYves Senn <yves.senn@gmail.com>2015-12-02 13:39:30 +0100
commit3da890f891b116218c10d9b049dba23d15d416cf (patch)
tree343746a950fa80b31866c6b2813a0d4828f25a76 /activerecord/test/cases/inheritance_test.rb
parent203db6b8c11532eb99e2770dbba326579532aa37 (diff)
parent6b18bdd00ce1e8eb4a5a30f0f6152e47da9bec42 (diff)
downloadrails-3da890f891b116218c10d9b049dba23d15d416cf.tar.gz
rails-3da890f891b116218c10d9b049dba23d15d416cf.tar.bz2
rails-3da890f891b116218c10d9b049dba23d15d416cf.zip
Merge pull request #17169 from kuldeepaggarwal/fix-STI-default-type
STI cast new instances to `default type` on initialize.
Diffstat (limited to 'activerecord/test/cases/inheritance_test.rb')
-rw-r--r--activerecord/test/cases/inheritance_test.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/activerecord/test/cases/inheritance_test.rb b/activerecord/test/cases/inheritance_test.rb
index 52e3734dd0..2ad8b30eae 100644
--- a/activerecord/test/cases/inheritance_test.rb
+++ b/activerecord/test/cases/inheritance_test.rb
@@ -478,4 +478,25 @@ class InheritanceComputeTypeTest < ActiveRecord::TestCase
product = Shop::Product.new(:type => phone)
assert product.save
end
+
+ def test_inheritance_new_with_subclass_as_default
+ original_type = Company.columns_hash["type"].default
+ ActiveRecord::Base.connection.change_column_default :companies, :type, 'Firm'
+ Company.reset_column_information
+
+ firm = Company.new # without arguments
+ assert_equal 'Firm', firm.type
+ assert_instance_of Firm, firm
+
+ firm = Company.new(firm_name: 'Shri Hans Plastic') # with arguments
+ assert_equal 'Firm', firm.type
+ assert_instance_of Firm, firm
+
+ firm = Company.new(type: 'Client') # overwrite the default type
+ assert_equal 'Client', firm.type
+ assert_instance_of Client, firm
+ ensure
+ ActiveRecord::Base.connection.change_column_default :companies, :type, original_type
+ Company.reset_column_information
+ end
end