Mercurial > hg > soundsoftware-site
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 |