Fixed circular dependencies possibly introduced when using reverse relations, for instance "blocked by" relations (#8616).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6124 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -44,6 +44,9 @@ class IssueRelationTest < ActiveSupport::TestCase
|
||||
assert_equal from, relation.issue_to
|
||||
end
|
||||
|
||||
# TODO : document why it shouldn't be reversed if validation fails : having
|
||||
# relations reversed before the validation would allow simpler code for the
|
||||
# validation
|
||||
def test_follows_relation_should_not_be_reversed_if_validation_fails
|
||||
from = Issue.find(1)
|
||||
to = Issue.find(2)
|
||||
@@ -82,4 +85,13 @@ class IssueRelationTest < ActiveSupport::TestCase
|
||||
assert !r.save
|
||||
assert_not_nil r.errors.on(:base)
|
||||
end
|
||||
|
||||
def test_validates_circular_dependency_on_reverse_relations
|
||||
IssueRelation.delete_all
|
||||
assert IssueRelation.create!(:issue_from => Issue.find(1), :issue_to => Issue.find(3), :relation_type => IssueRelation::TYPE_BLOCKS)
|
||||
assert IssueRelation.create!(:issue_from => Issue.find(1), :issue_to => Issue.find(2), :relation_type => IssueRelation::TYPE_BLOCKED)
|
||||
r = IssueRelation.new(:issue_from => Issue.find(2), :issue_to => Issue.find(1), :relation_type => IssueRelation::TYPE_BLOCKED)
|
||||
assert !r.save
|
||||
assert_not_nil r.errors.on(:base)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user