diff options
Diffstat (limited to 'activerecord/test')
-rwxr-xr-x | activerecord/test/cases/associations_test.rb | 12 | ||||
-rwxr-xr-x | activerecord/test/cases/base_test.rb | 2 | ||||
-rw-r--r-- | activerecord/test/fixtures/posts.yml | 1 | ||||
-rw-r--r-- | activerecord/test/models/comment.rb | 4 | ||||
-rw-r--r-- | activerecord/test/schema/schema.rb | 1 |
5 files changed, 17 insertions, 3 deletions
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 diff --git a/activerecord/test/fixtures/posts.yml b/activerecord/test/fixtures/posts.yml index 0f1445b638..92e5d1908f 100644 --- a/activerecord/test/fixtures/posts.yml +++ b/activerecord/test/fixtures/posts.yml @@ -3,6 +3,7 @@ welcome: author_id: 1 title: Welcome to the weblog body: Such a lovely day + comments_count: 2 type: Post thinking: diff --git a/activerecord/test/models/comment.rb b/activerecord/test/models/comment.rb index 60ca082c2e..73ebdadf73 100644 --- a/activerecord/test/models/comment.rb +++ b/activerecord/test/models/comment.rb @@ -1,5 +1,5 @@ class Comment < ActiveRecord::Base - belongs_to :post + belongs_to :post, :counter_cache => true def self.what_are_you 'a comment...' @@ -20,4 +20,4 @@ class VerySpecialComment < Comment def self.what_are_you 'a very special comment...' end -end
\ No newline at end of file +end diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index 307ad8b935..44bbb48773 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -154,6 +154,7 @@ ActiveRecord::Schema.define do t.string :title, :null => false t.text :body, :null => false t.string :type + t.integer :comments_count, :default => 0 end create_table :projects, :force => true do |t| |