@@ -64,83 +64,6 @@ def test_remove_index_when_name_and_wrong_column_name_specified_positional_argum
6464
6565 end
6666
67- class AdapterForeignKeyTest < ActiveRecord ::TestCase
68- self . use_transactional_tests = false
69-
70- fixtures :fk_test_has_pk
71-
72- def before_setup
73- super
74- conn = ActiveRecord ::Base . lease_connection
75-
76- conn . drop_table :fk_test_has_fk , if_exists : true
77- conn . drop_table :fk_test_has_pk , if_exists : true
78-
79- conn . create_table :fk_test_has_pk , primary_key : "pk_id" , force : :cascade do |t |
80- end
81-
82- conn . create_table :fk_test_has_fk , force : true do |t |
83- t . references :fk , null : false
84- t . foreign_key :fk_test_has_pk , column : "fk_id" , name : "fk_name" , primary_key : "pk_id"
85- end
86-
87- conn . execute "INSERT INTO fk_test_has_pk (pk_id) VALUES (1)"
88- end
89-
90- def setup
91- super
92- @connection = ActiveRecord ::Base . lease_connection
93- end
94-
95- def test_foreign_key_violations_are_translated_to_specific_exception_with_validate_false
96- klass_has_fk = Class . new ( ActiveRecord ::Base ) do
97- self . table_name = "fk_test_has_fk"
98- end
99-
100- error = assert_raises ( ActiveRecord ::InvalidForeignKey ) do
101- has_fk = klass_has_fk . new
102- has_fk . fk_id = 1231231231
103- has_fk . save ( validate : false )
104- end
105-
106- assert_not_nil error . cause
107- end
108-
109- # This is override to prevent an intermittent error
110- # Table fk_test_has_pk has constrain droped and not created back
111- def test_foreign_key_violations_on_insert_are_translated_to_specific_exception
112- error = assert_raises ( ActiveRecord ::InvalidForeignKey ) do
113- insert_into_fk_test_has_fk
114- end
115-
116- assert_not_nil error . cause
117- end
118-
119- # This is override to prevent an intermittent error
120- # Table fk_test_has_pk has constrain droped and not created back
121- def test_foreign_key_violations_on_delete_are_translated_to_specific_exception
122- insert_into_fk_test_has_fk fk_id : 1
123-
124- error = assert_raises ( ActiveRecord ::InvalidForeignKey ) do
125- @connection . execute "DELETE FROM fk_test_has_pk WHERE pk_id = 1"
126- end
127-
128- assert_not_nil error . cause
129- end
130-
131- private
132-
133- def insert_into_fk_test_has_fk ( fk_id : 0 )
134- # Oracle adapter uses prefetched primary key values from sequence and passes them to connection adapter insert method
135- if @connection . prefetch_primary_key?
136- id_value = @connection . next_sequence_value ( @connection . default_sequence_name ( "fk_test_has_fk" , "id" ) )
137- @connection . execute "INSERT INTO fk_test_has_fk (id,fk_id) VALUES (#{ id_value } ,#{ fk_id } )"
138- else
139- @connection . execute "INSERT INTO fk_test_has_fk (fk_id) VALUES (#{ fk_id } )"
140- end
141- end
142- end
143-
14467 class AdapterTestWithoutTransaction < ActiveRecord ::TestCase
14568 self . use_transactional_tests = false
14669
0 commit comments