Chris@1115
|
1 module ObjectHelpers
|
Chris@1115
|
2 def User.generate!(attributes={})
|
Chris@1115
|
3 @generated_user_login ||= 'user0'
|
Chris@1115
|
4 @generated_user_login.succ!
|
Chris@1115
|
5 user = User.new(attributes)
|
Chris@1464
|
6 user.login = @generated_user_login.dup if user.login.blank?
|
Chris@1115
|
7 user.mail = "#{@generated_user_login}@example.com" if user.mail.blank?
|
Chris@1115
|
8 user.firstname = "Bob" if user.firstname.blank?
|
Chris@1115
|
9 user.lastname = "Doe" if user.lastname.blank?
|
Chris@1115
|
10 yield user if block_given?
|
Chris@1115
|
11 user.save!
|
Chris@1115
|
12 user
|
Chris@1115
|
13 end
|
Chris@1115
|
14
|
Chris@1115
|
15 def User.add_to_project(user, project, roles=nil)
|
Chris@1115
|
16 roles = Role.find(1) if roles.nil?
|
Chris@1115
|
17 roles = [roles] unless roles.is_a?(Array)
|
Chris@1115
|
18 Member.create!(:principal => user, :project => project, :roles => roles)
|
Chris@1115
|
19 end
|
Chris@1115
|
20
|
Chris@1115
|
21 def Group.generate!(attributes={})
|
Chris@1115
|
22 @generated_group_name ||= 'Group 0'
|
Chris@1115
|
23 @generated_group_name.succ!
|
Chris@1115
|
24 group = Group.new(attributes)
|
Chris@1464
|
25 group.name = @generated_group_name.dup if group.name.blank?
|
Chris@1115
|
26 yield group if block_given?
|
Chris@1115
|
27 group.save!
|
Chris@1115
|
28 group
|
Chris@1115
|
29 end
|
Chris@1115
|
30
|
Chris@1115
|
31 def Project.generate!(attributes={})
|
Chris@1115
|
32 @generated_project_identifier ||= 'project-0000'
|
Chris@1115
|
33 @generated_project_identifier.succ!
|
Chris@1115
|
34 project = Project.new(attributes)
|
Chris@1464
|
35 project.name = @generated_project_identifier.dup if project.name.blank?
|
Chris@1464
|
36 project.identifier = @generated_project_identifier.dup if project.identifier.blank?
|
Chris@1115
|
37 yield project if block_given?
|
Chris@1115
|
38 project.save!
|
Chris@1115
|
39 project
|
Chris@1115
|
40 end
|
Chris@1115
|
41
|
Chris@1464
|
42 def Project.generate_with_parent!(parent, attributes={})
|
Chris@1464
|
43 project = Project.generate!(attributes)
|
Chris@1464
|
44 project.set_parent!(parent)
|
Chris@1464
|
45 project
|
Chris@1464
|
46 end
|
Chris@1464
|
47
|
Chris@1115
|
48 def Tracker.generate!(attributes={})
|
Chris@1115
|
49 @generated_tracker_name ||= 'Tracker 0'
|
Chris@1115
|
50 @generated_tracker_name.succ!
|
Chris@1115
|
51 tracker = Tracker.new(attributes)
|
Chris@1464
|
52 tracker.name = @generated_tracker_name.dup if tracker.name.blank?
|
Chris@1115
|
53 yield tracker if block_given?
|
Chris@1115
|
54 tracker.save!
|
Chris@1115
|
55 tracker
|
Chris@1115
|
56 end
|
Chris@1115
|
57
|
Chris@1115
|
58 def Role.generate!(attributes={})
|
Chris@1115
|
59 @generated_role_name ||= 'Role 0'
|
Chris@1115
|
60 @generated_role_name.succ!
|
Chris@1115
|
61 role = Role.new(attributes)
|
Chris@1464
|
62 role.name = @generated_role_name.dup if role.name.blank?
|
Chris@1115
|
63 yield role if block_given?
|
Chris@1115
|
64 role.save!
|
Chris@1115
|
65 role
|
Chris@1115
|
66 end
|
Chris@1115
|
67
|
Chris@1464
|
68 # Generates an unsaved Issue
|
Chris@1464
|
69 def Issue.generate(attributes={})
|
Chris@1115
|
70 issue = Issue.new(attributes)
|
Chris@1115
|
71 issue.project ||= Project.find(1)
|
Chris@1115
|
72 issue.tracker ||= issue.project.trackers.first
|
Chris@1115
|
73 issue.subject = 'Generated' if issue.subject.blank?
|
Chris@1115
|
74 issue.author ||= User.find(2)
|
Chris@1115
|
75 yield issue if block_given?
|
Chris@1464
|
76 issue
|
Chris@1464
|
77 end
|
Chris@1464
|
78
|
Chris@1464
|
79 # Generates a saved Issue
|
Chris@1464
|
80 def Issue.generate!(attributes={}, &block)
|
Chris@1464
|
81 issue = Issue.generate(attributes, &block)
|
Chris@1115
|
82 issue.save!
|
Chris@1115
|
83 issue
|
Chris@1115
|
84 end
|
Chris@1115
|
85
|
Chris@1115
|
86 # Generates an issue with 2 children and a grandchild
|
Chris@1115
|
87 def Issue.generate_with_descendants!(attributes={})
|
Chris@1115
|
88 issue = Issue.generate!(attributes)
|
Chris@1115
|
89 child = Issue.generate!(:project => issue.project, :subject => 'Child1', :parent_issue_id => issue.id)
|
Chris@1115
|
90 Issue.generate!(:project => issue.project, :subject => 'Child2', :parent_issue_id => issue.id)
|
Chris@1115
|
91 Issue.generate!(:project => issue.project, :subject => 'Child11', :parent_issue_id => child.id)
|
Chris@1115
|
92 issue.reload
|
Chris@1115
|
93 end
|
Chris@1115
|
94
|
Chris@1115
|
95 def Journal.generate!(attributes={})
|
Chris@1115
|
96 journal = Journal.new(attributes)
|
Chris@1115
|
97 journal.user ||= User.first
|
Chris@1115
|
98 journal.journalized ||= Issue.first
|
Chris@1115
|
99 yield journal if block_given?
|
Chris@1115
|
100 journal.save!
|
Chris@1115
|
101 journal
|
Chris@1115
|
102 end
|
Chris@1115
|
103
|
Chris@1115
|
104 def Version.generate!(attributes={})
|
Chris@1115
|
105 @generated_version_name ||= 'Version 0'
|
Chris@1115
|
106 @generated_version_name.succ!
|
Chris@1115
|
107 version = Version.new(attributes)
|
Chris@1464
|
108 version.name = @generated_version_name.dup if version.name.blank?
|
Chris@1115
|
109 yield version if block_given?
|
Chris@1115
|
110 version.save!
|
Chris@1115
|
111 version
|
Chris@1115
|
112 end
|
Chris@1115
|
113
|
Chris@1464
|
114 def TimeEntry.generate!(attributes={})
|
Chris@1464
|
115 entry = TimeEntry.new(attributes)
|
Chris@1464
|
116 entry.user ||= User.find(2)
|
Chris@1464
|
117 entry.issue ||= Issue.find(1) unless entry.project
|
Chris@1464
|
118 entry.project ||= entry.issue.project
|
Chris@1464
|
119 entry.activity ||= TimeEntryActivity.first
|
Chris@1464
|
120 entry.spent_on ||= Date.today
|
Chris@1464
|
121 entry.hours ||= 1.0
|
Chris@1464
|
122 entry.save!
|
Chris@1464
|
123 entry
|
Chris@1464
|
124 end
|
Chris@1464
|
125
|
Chris@1115
|
126 def AuthSource.generate!(attributes={})
|
Chris@1115
|
127 @generated_auth_source_name ||= 'Auth 0'
|
Chris@1115
|
128 @generated_auth_source_name.succ!
|
Chris@1115
|
129 source = AuthSource.new(attributes)
|
Chris@1464
|
130 source.name = @generated_auth_source_name.dup if source.name.blank?
|
Chris@1115
|
131 yield source if block_given?
|
Chris@1115
|
132 source.save!
|
Chris@1115
|
133 source
|
Chris@1115
|
134 end
|
Chris@1115
|
135
|
Chris@1115
|
136 def Board.generate!(attributes={})
|
Chris@1115
|
137 @generated_board_name ||= 'Forum 0'
|
Chris@1115
|
138 @generated_board_name.succ!
|
Chris@1115
|
139 board = Board.new(attributes)
|
Chris@1464
|
140 board.name = @generated_board_name.dup if board.name.blank?
|
Chris@1464
|
141 board.description = @generated_board_name.dup if board.description.blank?
|
Chris@1115
|
142 yield board if block_given?
|
Chris@1115
|
143 board.save!
|
Chris@1115
|
144 board
|
Chris@1115
|
145 end
|
Chris@1294
|
146
|
Chris@1294
|
147 def Attachment.generate!(attributes={})
|
Chris@1294
|
148 @generated_filename ||= 'testfile0'
|
Chris@1294
|
149 @generated_filename.succ!
|
Chris@1294
|
150 attributes = attributes.dup
|
Chris@1294
|
151 attachment = Attachment.new(attributes)
|
Chris@1294
|
152 attachment.container ||= Issue.find(1)
|
Chris@1294
|
153 attachment.author ||= User.find(2)
|
Chris@1464
|
154 attachment.filename = @generated_filename.dup if attachment.filename.blank?
|
Chris@1294
|
155 attachment.save!
|
Chris@1294
|
156 attachment
|
Chris@1294
|
157 end
|
Chris@1464
|
158
|
Chris@1464
|
159 def CustomField.generate!(attributes={})
|
Chris@1464
|
160 @generated_custom_field_name ||= 'Custom field 0'
|
Chris@1464
|
161 @generated_custom_field_name.succ!
|
Chris@1464
|
162 field = new(attributes)
|
Chris@1464
|
163 field.name = @generated_custom_field_name.dup if field.name.blank?
|
Chris@1464
|
164 field.field_format = 'string' if field.field_format.blank?
|
Chris@1464
|
165 yield field if block_given?
|
Chris@1464
|
166 field.save!
|
Chris@1464
|
167 field
|
Chris@1464
|
168 end
|
Chris@1464
|
169
|
Chris@1464
|
170 def Changeset.generate!(attributes={})
|
Chris@1464
|
171 @generated_changeset_rev ||= '123456'
|
Chris@1464
|
172 @generated_changeset_rev.succ!
|
Chris@1464
|
173 changeset = new(attributes)
|
Chris@1464
|
174 changeset.repository ||= Project.find(1).repository
|
Chris@1464
|
175 changeset.revision ||= @generated_changeset_rev
|
Chris@1464
|
176 changeset.committed_on ||= Time.now
|
Chris@1464
|
177 yield changeset if block_given?
|
Chris@1464
|
178 changeset.save!
|
Chris@1464
|
179 changeset
|
Chris@1464
|
180 end
|
Chris@1115
|
181 end
|
Chris@1517
|
182
|
Chris@1517
|
183 module IssueObjectHelpers
|
Chris@1517
|
184 def close!
|
Chris@1517
|
185 self.status = IssueStatus.where(:is_closed => true).first
|
Chris@1517
|
186 save!
|
Chris@1517
|
187 end
|
Chris@1517
|
188
|
Chris@1517
|
189 def generate_child!(attributes={})
|
Chris@1517
|
190 Issue.generate!(attributes.merge(:parent_issue_id => self.id))
|
Chris@1517
|
191 end
|
Chris@1517
|
192 end
|
Chris@1517
|
193
|
Chris@1517
|
194 Issue.send :include, IssueObjectHelpers
|