From c48f744400844e4c73eb91c83d86c3e915a9d78b Mon Sep 17 00:00:00 2001 From: Michael Koziarski Date: Sat, 26 Jan 2008 06:23:03 +0000 Subject: Make sure that belongs_to counter decrements when assigning nil Closes #10804 [jeanmartin] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8735 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/test/cases/associations_test.rb | 12 ++++++++++++ activerecord/test/cases/base_test.rb | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'activerecord/test/cases') diff --git a/activerecord/test/cases/associations_test.rb b/activerecord/test/cases/associations_test.rb index a15abf90a6..0df508d01d 100755 --- a/activerecord/test/cases/associations_test.rb +++ b/activerecord/test/cases/associations_test.rb @@ -1308,6 +1308,18 @@ class BelongsToAssociationsTest < ActiveRecord::TestCase assert_equal 0, Topic.find(debate.id).send(:read_attribute, "replies_count"), "First reply deleted" end + def test_belongs_to_counter_with_assigning_nil + p = Post.find(1) + c = Comment.find(1) + + assert_equal p.id, c.post_id + assert_equal 2, Post.find(p.id).comments.size + + c.post = nil + + assert_equal 1, Post.find(p.id).comments.size + end + def test_belongs_to_counter_with_reassigning t1 = Topic.create("title" => "t1") t2 = Topic.create("title" => "t2") diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 4339b725c8..04ed751eb5 100755 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -877,7 +877,7 @@ class BasicsTest < ActiveRecord::TestCase end def test_readonly_attributes - assert_equal Set.new([ 'title' ]), ReadonlyTitlePost.readonly_attributes + assert_equal Set.new([ 'title', 'comments_count' ]), ReadonlyTitlePost.readonly_attributes post = ReadonlyTitlePost.create(:title => "cannot change this", :body => "changeable") post.reload -- cgit v1.2.3