Mercurial > hg > soundsoftware-site
comparison .svn/pristine/ac/ac72e9b13ee621269bf022e0045e469b2cf12b1b.svn-base @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
1 # Redmine - project management software | |
2 # Copyright (C) 2006-2011 Jean-Philippe Lang | |
3 # | |
4 # This program is free software; you can redistribute it and/or | |
5 # modify it under the terms of the GNU General Public License | |
6 # as published by the Free Software Foundation; either version 2 | |
7 # of the License, or (at your option) any later version. | |
8 # | |
9 # This program is distributed in the hope that it will be useful, | |
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 # GNU General Public License for more details. | |
13 # | |
14 # You should have received a copy of the GNU General Public License | |
15 # along with this program; if not, write to the Free Software | |
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
17 | |
18 require File.expand_path('../../test_helper', __FILE__) | |
19 | |
20 class IssueRelationTest < ActiveSupport::TestCase | |
21 fixtures :issue_relations, :issues | |
22 | |
23 def test_create | |
24 from = Issue.find(1) | |
25 to = Issue.find(2) | |
26 | |
27 relation = IssueRelation.new :issue_from => from, :issue_to => to, | |
28 :relation_type => IssueRelation::TYPE_PRECEDES | |
29 assert relation.save | |
30 relation.reload | |
31 assert_equal IssueRelation::TYPE_PRECEDES, relation.relation_type | |
32 assert_equal from, relation.issue_from | |
33 assert_equal to, relation.issue_to | |
34 end | |
35 | |
36 def test_create_minimum | |
37 relation = IssueRelation.new :issue_from => Issue.find(1), :issue_to => Issue.find(2) | |
38 assert relation.save | |
39 assert_equal IssueRelation::TYPE_RELATES, relation.relation_type | |
40 end | |
41 | |
42 def test_follows_relation_should_be_reversed | |
43 from = Issue.find(1) | |
44 to = Issue.find(2) | |
45 | |
46 relation = IssueRelation.new :issue_from => from, :issue_to => to, | |
47 :relation_type => IssueRelation::TYPE_FOLLOWS | |
48 assert relation.save | |
49 relation.reload | |
50 assert_equal IssueRelation::TYPE_PRECEDES, relation.relation_type | |
51 assert_equal to, relation.issue_from | |
52 assert_equal from, relation.issue_to | |
53 end | |
54 | |
55 def test_follows_relation_should_not_be_reversed_if_validation_fails | |
56 from = Issue.find(1) | |
57 to = Issue.find(2) | |
58 | |
59 relation = IssueRelation.new :issue_from => from, :issue_to => to, | |
60 :relation_type => IssueRelation::TYPE_FOLLOWS, | |
61 :delay => 'xx' | |
62 assert !relation.save | |
63 assert_equal IssueRelation::TYPE_FOLLOWS, relation.relation_type | |
64 assert_equal from, relation.issue_from | |
65 assert_equal to, relation.issue_to | |
66 end | |
67 | |
68 def test_relation_type_for | |
69 from = Issue.find(1) | |
70 to = Issue.find(2) | |
71 | |
72 relation = IssueRelation.new :issue_from => from, :issue_to => to, | |
73 :relation_type => IssueRelation::TYPE_PRECEDES | |
74 assert_equal IssueRelation::TYPE_PRECEDES, relation.relation_type_for(from) | |
75 assert_equal IssueRelation::TYPE_FOLLOWS, relation.relation_type_for(to) | |
76 end | |
77 | |
78 def test_set_issue_to_dates_without_issue_to | |
79 r = IssueRelation.new(:issue_from => Issue.new(:start_date => Date.today), | |
80 :relation_type => IssueRelation::TYPE_PRECEDES, | |
81 :delay => 1) | |
82 assert_nil r.set_issue_to_dates | |
83 end | |
84 | |
85 def test_set_issue_to_dates_without_issues | |
86 r = IssueRelation.new(:relation_type => IssueRelation::TYPE_PRECEDES, :delay => 1) | |
87 assert_nil r.set_issue_to_dates | |
88 end | |
89 | |
90 def test_validates_circular_dependency | |
91 IssueRelation.delete_all | |
92 assert IssueRelation.create!(:issue_from => Issue.find(1), :issue_to => Issue.find(2), :relation_type => IssueRelation::TYPE_PRECEDES) | |
93 assert IssueRelation.create!(:issue_from => Issue.find(2), :issue_to => Issue.find(3), :relation_type => IssueRelation::TYPE_PRECEDES) | |
94 r = IssueRelation.new(:issue_from => Issue.find(3), :issue_to => Issue.find(1), :relation_type => IssueRelation::TYPE_PRECEDES) | |
95 assert !r.save | |
96 assert_not_nil r.errors[:base] | |
97 end | |
98 | |
99 def test_validates_circular_dependency_on_reverse_relations | |
100 IssueRelation.delete_all | |
101 assert IssueRelation.create!(:issue_from => Issue.find(1), :issue_to => Issue.find(3), :relation_type => IssueRelation::TYPE_BLOCKS) | |
102 assert IssueRelation.create!(:issue_from => Issue.find(1), :issue_to => Issue.find(2), :relation_type => IssueRelation::TYPE_BLOCKED) | |
103 r = IssueRelation.new(:issue_from => Issue.find(2), :issue_to => Issue.find(1), :relation_type => IssueRelation::TYPE_BLOCKED) | |
104 assert !r.save | |
105 assert_not_nil r.errors[:base] | |
106 end | |
107 end |