deleting a forum topic should delete its posts

This commit is contained in:
albert
2011-01-12 18:06:46 -05:00
parent 668fbab77a
commit d6f1d09da0
3 changed files with 24 additions and 1 deletions

View File

@@ -2,7 +2,7 @@ class ForumTopic < ActiveRecord::Base
attr_accessible :title, :original_post_attributes
belongs_to :creator, :class_name => "User"
belongs_to :updater, :class_name => "User"
has_many :posts, :class_name => "ForumPost", :order => "forum_posts.id asc", :foreign_key => "topic_id"
has_many :posts, :class_name => "ForumPost", :order => "forum_posts.id asc", :foreign_key => "topic_id", :dependent => :destroy
has_one :original_post, :class_name => "ForumPost", :order => "forum_posts.id asc", :foreign_key => "topic_id"
before_validation :initialize_creator, :on => :create
before_validation :initialize_updater

View File

@@ -74,7 +74,16 @@ class ForumTopicsControllerTest < ActionController::TestCase
end
context "destroy action" do
setup do
@post = Factory.create(:forum_post, :topic_id => @forum_topic.id)
end
should "destroy the topic and any associated posts" do
assert_difference(["ForumPost.count", "ForumTopic.count"], -1) do
post :destroy, {:id => @forum_topic.id}, {:user_id => @user.id}
end
assert_redirected_to(forum_topics_path)
end
end
end
end

View File

@@ -42,5 +42,19 @@ class ForumTopicTest < ActiveSupport::TestCase
assert_equal(@second_user.id, @topic.updater_id)
end
end
context "with multiple posts that has been deleted" do
setup do
5.times do
Factory.create(:forum_post, :topic_id => @topic.id)
end
end
should "delete any associated posts" do
assert_difference("ForumPost.count", -5) do
@topic.destroy
end
end
end
end
end