diff options
Diffstat (limited to 'activerecord/test/cases/migration/foreign_key_test.rb')
-rw-r--r-- | activerecord/test/cases/migration/foreign_key_test.rb | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/activerecord/test/cases/migration/foreign_key_test.rb b/activerecord/test/cases/migration/foreign_key_test.rb index 6547ebb5d1..ba21923d79 100644 --- a/activerecord/test/cases/migration/foreign_key_test.rb +++ b/activerecord/test/cases/migration/foreign_key_test.rb @@ -20,7 +20,9 @@ if ActiveRecord::Base.connection.supports_foreign_keys? end end - module ForeignKeyChangeColumnSharedTest + class ForeignKeyChangeColumnTest < ActiveRecord::TestCase + self.use_transactional_tests = false + class Rocket < ActiveRecord::Base has_many :astronauts end @@ -141,17 +143,7 @@ if ActiveRecord::Base.connection.supports_foreign_keys? end end - class ForeignKeyChangeColumnTest < ActiveRecord::TestCase - include ForeignKeyChangeColumnSharedTest - - self.use_transactional_tests = false - end - - class ForeignKeyChangeColumnWithPrefixTest < ActiveRecord::TestCase - include ForeignKeyChangeColumnSharedTest - - self.use_transactional_tests = false - + class ForeignKeyChangeColumnWithPrefixTest < ForeignKeyChangeColumnTest setup do ActiveRecord::Base.table_name_prefix = "p_" end @@ -161,11 +153,7 @@ if ActiveRecord::Base.connection.supports_foreign_keys? end end - class ForeignKeyChangeColumnWithSuffixTest < ActiveRecord::TestCase - include ForeignKeyChangeColumnSharedTest - - self.use_transactional_tests = false - + class ForeignKeyChangeColumnWithSuffixTest < ForeignKeyChangeColumnTest setup do ActiveRecord::Base.table_name_suffix = "_p" end @@ -385,6 +373,18 @@ if ActiveRecord::Base.connection.supports_foreign_keys? assert_equal "Table 'astronauts' has no foreign key for rockets", e.message end + def test_remove_foreign_key_by_the_select_one_on_the_same_table + @connection.add_foreign_key :astronauts, :rockets + @connection.add_reference :astronauts, :myrocket, foreign_key: { to_table: :rockets } + + assert_equal 2, @connection.foreign_keys("astronauts").size + + @connection.remove_foreign_key :astronauts, :rockets, column: "myrocket_id" + + assert_equal [["astronauts", "rockets", "rocket_id"]], + @connection.foreign_keys("astronauts").map { |fk| [fk.from_table, fk.to_table, fk.column] } + end + if ActiveRecord::Base.connection.supports_validate_constraints? def test_add_invalid_foreign_key @connection.add_foreign_key :astronauts, :rockets, column: "rocket_id", validate: false |