comparison test/unit/tracker_test.rb @ 1115:433d4f72a19b redmine-2.2

Update to Redmine SVN revision 11137 on 2.2-stable branch
author Chris Cannam
date Mon, 07 Jan 2013 12:01:42 +0000
parents cbb26bc654de
children
comparison
equal deleted inserted replaced
929:5f33065ddc4b 1115:433d4f72a19b
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 require File.expand_path('../../test_helper', __FILE__) 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 class TrackerTest < ActiveSupport::TestCase 20 class TrackerTest < ActiveSupport::TestCase
21 fixtures :trackers, :workflows, :issue_statuses, :roles 21 fixtures :trackers, :workflows, :issue_statuses, :roles, :issues
22
23 def test_sorted_scope
24 assert_equal Tracker.all.sort, Tracker.sorted.all
25 end
26
27 def test_named_scope
28 assert_equal Tracker.find_by_name('Feature'), Tracker.named('feature').first
29 end
22 30
23 def test_copy_workflows 31 def test_copy_workflows
24 source = Tracker.find(1) 32 source = Tracker.find(1)
25 assert_equal 89, source.workflows.size 33 assert_equal 89, source.workflow_rules.size
26 34
27 target = Tracker.new(:name => 'Target') 35 target = Tracker.new(:name => 'Target')
28 assert target.save 36 assert target.save
29 target.workflows.copy(source) 37 target.workflow_rules.copy(source)
30 target.reload 38 target.reload
31 assert_equal 89, target.workflows.size 39 assert_equal 89, target.workflow_rules.size
32 end 40 end
33 41
34 def test_issue_statuses 42 def test_issue_statuses
35 tracker = Tracker.find(1) 43 tracker = Tracker.find(1)
36 Workflow.delete_all 44 WorkflowTransition.delete_all
37 Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 2, :new_status_id => 3) 45 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 2, :new_status_id => 3)
38 Workflow.create!(:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 5) 46 WorkflowTransition.create!(:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 5)
39 47
40 assert_kind_of Array, tracker.issue_statuses 48 assert_kind_of Array, tracker.issue_statuses
41 assert_kind_of IssueStatus, tracker.issue_statuses.first 49 assert_kind_of IssueStatus, tracker.issue_statuses.first
42 assert_equal [2, 3, 5], Tracker.find(1).issue_statuses.collect(&:id) 50 assert_equal [2, 3, 5], Tracker.find(1).issue_statuses.collect(&:id)
43 end 51 end
44 52
45 def test_issue_statuses_empty 53 def test_issue_statuses_empty
46 Workflow.delete_all("tracker_id = 1") 54 WorkflowTransition.delete_all("tracker_id = 1")
47 assert_equal [], Tracker.find(1).issue_statuses 55 assert_equal [], Tracker.find(1).issue_statuses
48 end 56 end
57
58 def test_issue_statuses_should_be_empty_for_new_record
59 assert_equal [], Tracker.new.issue_statuses
60 end
61
62 def test_core_fields_should_be_enabled_by_default
63 tracker = Tracker.new
64 assert_equal Tracker::CORE_FIELDS, tracker.core_fields
65 assert_equal [], tracker.disabled_core_fields
66 end
67
68 def test_core_fields
69 tracker = Tracker.new
70 tracker.core_fields = %w(assigned_to_id due_date)
71
72 assert_equal %w(assigned_to_id due_date), tracker.core_fields
73 assert_equal Tracker::CORE_FIELDS - %w(assigned_to_id due_date), tracker.disabled_core_fields
74 end
75
76 def test_core_fields_should_return_fields_enabled_for_any_tracker
77 trackers = []
78 trackers << Tracker.new(:core_fields => %w(assigned_to_id due_date))
79 trackers << Tracker.new(:core_fields => %w(assigned_to_id done_ratio))
80 trackers << Tracker.new(:core_fields => [])
81
82 assert_equal %w(assigned_to_id due_date done_ratio), Tracker.core_fields(trackers)
83 assert_equal Tracker::CORE_FIELDS - %w(assigned_to_id due_date done_ratio), Tracker.disabled_core_fields(trackers)
84 end
85
86 def test_core_fields_should_return_all_fields_for_an_empty_argument
87 assert_equal Tracker::CORE_FIELDS, Tracker.core_fields([])
88 assert_equal [], Tracker.disabled_core_fields([])
89 end
90
91 def test_sort_should_sort_by_position
92 a = Tracker.new(:name => 'Tracker A', :position => 2)
93 b = Tracker.new(:name => 'Tracker B', :position => 1)
94
95 assert_equal [b, a], [a, b].sort
96 end
97
98 def test_destroying_a_tracker_without_issues_should_not_raise_an_error
99 tracker = Tracker.find(1)
100 Issue.delete_all :tracker_id => tracker.id
101
102 assert_difference 'Tracker.count', -1 do
103 assert_nothing_raised do
104 tracker.destroy
105 end
106 end
107 end
108
109 def test_destroying_a_tracker_with_issues_should_raise_an_error
110 tracker = Tracker.find(1)
111
112 assert_no_difference 'Tracker.count' do
113 assert_raise Exception do
114 tracker.destroy
115 end
116 end
117 end
49 end 118 end