diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/member_test.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/unit/member_test.rb b/test/unit/member_test.rb index 586964b52..6ba9717c4 100644 --- a/test/unit/member_test.rb +++ b/test/unit/member_test.rb @@ -107,6 +107,23 @@ class MemberTest < ActiveSupport::TestCase assert_nil category1.assigned_to_id end + def test_destroy_should_trigger_callbacks_only_once + Member.class_eval { def destroy_test_callback; end} + Member.after_destroy :destroy_test_callback + + m = Member.create!(:user_id => 1, :project_id => 1, :role_ids => [1,3]) + + Member.any_instance.expects(:destroy_test_callback).once + assert_difference 'Member.count', -1 do + assert_difference 'MemberRole.count', -2 do + m.destroy + end + end + assert m.destroyed? + ensure + Member._destroy_callbacks.reject! {|c| c.filter==:destroy_test_callback} + end + def test_sort_without_roles a = Member.new(:roles => [Role.first]) b = Member.new |