summaryrefslogtreecommitdiffstats
path: root/test/unit/issue_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/issue_test.rb')
-rw-r--r--test/unit/issue_test.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb
index 7f62c136a..1f8ecba09 100644
--- a/test/unit/issue_test.rb
+++ b/test/unit/issue_test.rb
@@ -849,6 +849,49 @@ class IssueTest < ActiveSupport::TestCase
assert_equal copy.author, child_copy.author
end
+ def test_copy_as_a_child_of_copied_issue_should_not_copy_itself
+ parent = Issue.generate!
+ child1 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 1')
+ child2 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 2')
+
+ copy = parent.reload.copy
+ copy.parent_issue_id = parent.id
+ copy.author = User.find(7)
+ assert_difference 'Issue.count', 3 do
+ assert copy.save
+ end
+ parent.reload
+ copy.reload
+ assert_equal parent, copy.parent
+ assert_equal 3, parent.children.count
+ assert_equal 5, parent.descendants.count
+ assert_equal 2, copy.children.count
+ assert_equal 2, copy.descendants.count
+ end
+
+ def test_copy_as_a_descendant_of_copied_issue_should_not_copy_itself
+ parent = Issue.generate!
+ child1 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 1')
+ child2 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 2')
+
+ copy = parent.reload.copy
+ copy.parent_issue_id = child1.id
+ copy.author = User.find(7)
+ assert_difference 'Issue.count', 3 do
+ assert copy.save
+ end
+ parent.reload
+ child1.reload
+ copy.reload
+ assert_equal child1, copy.parent
+ assert_equal 2, parent.children.count
+ assert_equal 5, parent.descendants.count
+ assert_equal 1, child1.children.count
+ assert_equal 3, child1.descendants.count
+ assert_equal 2, copy.children.count
+ assert_equal 2, copy.descendants.count
+ end
+
def test_copy_should_copy_subtasks_to_target_project
issue = Issue.generate_with_descendants!