OSDN Git Service

Fixed: Boards are not deleted when project is deleted (closes #963).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 1 Apr 2008 17:43:20 +0000 (17:43 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 1 Apr 2008 17:43:20 +0000 (17:43 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1316 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/project.rb
test/unit/project_test.rb

index a223b35..eaa33c9 100644 (file)
@@ -33,7 +33,7 @@ class Project < ActiveRecord::Base
   has_many :documents, :dependent => :destroy
   has_many :news, :dependent => :delete_all, :include => :author
   has_many :issue_categories, :dependent => :delete_all, :order => "#{IssueCategory.table_name}.name"
-  has_many :boards, :order => "position ASC"
+  has_many :boards, :dependent => :destroy, :order => "position ASC"
   has_one :repository, :dependent => :destroy
   has_many :changesets, :through => :repository
   has_one :wiki, :dependent => :destroy
index f7da6ec..9af68c2 100644 (file)
@@ -18,7 +18,7 @@
 require File.dirname(__FILE__) + '/../test_helper'\r
 \r
 class ProjectTest < Test::Unit::TestCase\r
-  fixtures :projects, :issues, :issue_statuses, :journals, :journal_details, :users, :members, :roles, :projects_trackers, :trackers\r
+  fixtures :projects, :issues, :issue_statuses, :journals, :journal_details, :users, :members, :roles, :projects_trackers, :trackers, :boards\r
 \r
   def setup\r
     @ecookbook = Project.find(1)\r
@@ -84,12 +84,15 @@ class ProjectTest < Test::Unit::TestCase
     assert_equal 2, @ecookbook.members.size\r
     # and 1 is locked\r
     assert_equal 3, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size\r
+    # some boards\r
+    assert @ecookbook.boards.any?\r
     \r
     @ecookbook.destroy\r
     # make sure that the project non longer exists\r
     assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) }\r
-    # make sure all members have been removed\r
-    assert_equal 0, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size\r
+    # make sure related data was removed\r
+    assert Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?\r
+    assert Board.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).empty?\r
   end\r
   \r
   def test_subproject_ok\r