Skip to content

Commit e0bbe52

Browse files
juno-nishizakiRedmine Patch Meetup
authored and
Redmine Patch Meetup
committed
add more tests
1 parent f39343c commit e0bbe52

File tree

2 files changed

+65
-7
lines changed

2 files changed

+65
-7
lines changed

app/models/issue.rb

-1
Original file line numberDiff line numberDiff line change
@@ -1460,7 +1460,6 @@ def css_classes(user=User.current)
14601460
end
14611461

14621462
# Retrieves issue's original status from journal if modified since issue creation
1463-
# TODO: 書けそうだったらissue_test.rbにテスト追加
14641463
def event_status
14651464
changed_statuses = JournalDetail.joins("LEFT OUTER JOIN #{Journal.table_name} ON #{JournalDetail.table_name}.journal_id = #{Journal.table_name}.id").
14661465
where("#{Journal.table_name}.journalized_id = ? AND #{Journal.table_name}.journalized_type = 'Issue' AND #{JournalDetail.table_name}.prop_key = 'status_id'", self.id).

test/unit/activity_test.rb

+65-6
Original file line numberDiff line numberDiff line change
@@ -134,18 +134,18 @@ def test_event_group_for_wiki_content_version
134134

135135
def test_activity_contains_issue_status_update_events
136136
issue = Issue.generate!(:status_id => 1)
137-
137+
138138
events = find_events(User.anonymous, :project => @project)
139139
target_issue_events = events.find_all { |event| event == issue || (event.is_a?(Journal) && event.issue == issue ) }
140140
target_issue_events.sort! { |x, y| x.event_datetime <=> y.event_datetime }
141141
event_titles = target_issue_events.map{ |e| e.event_title }
142142
assert_equal("Bug ##{issue.id} (New): Generated", event_titles[0], "event title should includes (New)")
143-
143+
144144
issue = Issue.find(issue.id)
145-
issue.init_journal(User.first, "Assign")
145+
issue.init_journal(User.first)
146146
issue.status_id = 2
147147
assert issue.save
148-
148+
149149
events = find_events(User.anonymous, :project => @project)
150150
target_issue_events = events.find_all { |event| event == issue || (event.is_a?(Journal) && event.issue == issue ) }
151151
target_issue_events.sort! { |x, y| x.event_datetime <=> y.event_datetime }
@@ -154,7 +154,7 @@ def test_activity_contains_issue_status_update_events
154154
assert_equal("Bug ##{issue.id} (Assigned): Generated", event_titles[1], "event title should includes (Assinged)")
155155

156156
issue = Issue.find(issue.id)
157-
issue.init_journal(User.first, "Resolve")
157+
issue.init_journal(User.first)
158158
issue.status_id = 3
159159
assert issue.save
160160

@@ -165,9 +165,68 @@ def test_activity_contains_issue_status_update_events
165165
assert_equal("Bug ##{issue.id} (New): Generated", event_titles[0], "event title should includes (New)")
166166
assert_equal("Bug ##{issue.id} (Assigned): Generated", event_titles[1], "event title should includes (Assinged)")
167167
assert_equal("Bug ##{issue.id} (Resolved): Generated", event_titles[2], "event title should includes (Resolved)")
168-
169168
end
170169

170+
def test_activity_contains_issue_status_update_events2
171+
# ステータス以外(サブジェクト)を変更後、ステータスを変更する
172+
# ステータス以外(サブジェクト)とステータスを一度に変更する
173+
174+
issue = Issue.generate!(:status_id => 1, :subject => "Generated")
175+
176+
issue = Issue.find(issue.id)
177+
issue.init_journal(User.first)
178+
issue.subject = "Activity test"
179+
assert issue.save
180+
181+
issue = Issue.find(issue.id)
182+
issue.init_journal(User.first)
183+
issue.status_id = 3
184+
assert issue.save
185+
186+
events = find_events(User.anonymous, :project => @project)
187+
target_issue_events = events.find_all { |event| event == issue || (event.is_a?(Journal) && event.issue == issue ) }
188+
target_issue_events.sort! { |x, y| x.event_datetime <=> y.event_datetime }
189+
event_titles = target_issue_events.map{ |e| e.event_title }
190+
assert_equal("Bug ##{issue.id} (New): Activity test", event_titles[0], "event title should includes (New)")
191+
assert_equal("Bug ##{issue.id} (Resolved): Activity test", event_titles[1], "event title should includes (Resolved)")
192+
193+
issue = Issue.find(issue.id)
194+
issue.init_journal(User.first, "Close")
195+
issue.subject = "Closing test"
196+
issue.status_id = 5
197+
assert issue.save
198+
199+
events = find_events(User.anonymous, :project => @project)
200+
target_issue_events = events.find_all { |event| event == issue || (event.is_a?(Journal) && event.issue == issue ) }
201+
target_issue_events.sort! { |x, y| x.event_datetime <=> y.event_datetime }
202+
event_titles = target_issue_events.map{ |e| e.event_title }
203+
assert_equal("Bug ##{issue.id} (New): Closing test", event_titles[0], "event title should includes (New)")
204+
assert_equal("Bug ##{issue.id} (Resolved): Closing test", event_titles[1], "event title should includes (Resolved)")
205+
assert_equal("Bug ##{issue.id} (Closed): Closing test", event_titles[2], "event title should includes (Closed)")
206+
end
207+
208+
def test_activity_contains_issue_status_update_events3
209+
# コメントを追記後、ステータスを変更する
210+
issue = Issue.generate!(:status_id => 1, :subject => "Generated")
211+
212+
issue = Issue.find(issue.id)
213+
issue.init_journal(User.first, "note")
214+
assert issue.save
215+
216+
issue = Issue.find(issue.id)
217+
issue.init_journal(User.first)
218+
issue.status_id = 3
219+
assert issue.save
220+
221+
events = find_events(User.anonymous, :project => @project)
222+
target_issue_events = events.find_all { |event| event == issue || (event.is_a?(Journal) && event.issue == issue ) }
223+
target_issue_events.sort! { |x, y| x.event_datetime <=> y.event_datetime }
224+
event_titles = target_issue_events.map{ |e| e.event_title }
225+
assert_equal("Bug ##{issue.id} (New): Generated", event_titles[0], "event title should includes (New)")
226+
assert_equal("Bug ##{issue.id}: Generated", event_titles[1], "event title should not include status")
227+
assert_equal("Bug ##{issue.id} (Resolved): Generated", event_titles[2], "event title should includes (Resolved)")
228+
end
229+
171230
class TestActivityProviderWithPermission
172231
def self.activity_provider_options
173232
{'test' => {:permission => :custom_permission}}

0 commit comments

Comments
 (0)