44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "cases/helper"
|
|
require "models/content"
|
|
|
|
class BidirectionalDestroyDependenciesTest < ActiveRecord::TestCase
|
|
fixtures :content, :content_positions
|
|
|
|
def setup
|
|
Content.destroyed_ids.clear
|
|
ContentPosition.destroyed_ids.clear
|
|
end
|
|
|
|
def test_bidirectional_dependence_when_destroying_item_with_belongs_to_association
|
|
content_position = ContentPosition.find(1)
|
|
content = content_position.content
|
|
assert_not_nil content
|
|
|
|
content_position.destroy
|
|
|
|
assert_equal [content_position.id], ContentPosition.destroyed_ids
|
|
assert_equal [content.id], Content.destroyed_ids
|
|
end
|
|
|
|
def test_bidirectional_dependence_when_destroying_item_with_has_one_association
|
|
content = Content.find(1)
|
|
content_position = content.content_position
|
|
assert_not_nil content_position
|
|
|
|
content.destroy
|
|
|
|
assert_equal [content.id], Content.destroyed_ids
|
|
assert_equal [content_position.id], ContentPosition.destroyed_ids
|
|
end
|
|
|
|
def test_bidirectional_dependence_when_destroying_item_with_has_one_association_fails_first_time
|
|
content = ContentWhichRequiresTwoDestroyCalls.find(1)
|
|
|
|
2.times { content.destroy }
|
|
|
|
assert_equal content.destroyed?, true
|
|
end
|
|
end
|