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@1295
|
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@1295
|
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@1295
|
35 project.name = @generated_project_identifier.dup if project.name.blank?
|
Chris@1295
|
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@1295
|
42 def Project.generate_with_parent!(parent, attributes={})
|
Chris@1295
|
43 project = Project.generate!(attributes)
|
Chris@1295
|
44 project.set_parent!(parent)
|
Chris@1295
|
45 project
|
Chris@1295
|
46 end
|
Chris@1295
|
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@1295
|
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@1295
|
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@1115
|
68 def Issue.generate!(attributes={})
|
Chris@1115
|
69 issue = Issue.new(attributes)
|
Chris@1115
|
70 issue.project ||= Project.find(1)
|
Chris@1115
|
71 issue.tracker ||= issue.project.trackers.first
|
Chris@1115
|
72 issue.subject = 'Generated' if issue.subject.blank?
|
Chris@1115
|
73 issue.author ||= User.find(2)
|
Chris@1115
|
74 yield issue if block_given?
|
Chris@1115
|
75 issue.save!
|
Chris@1115
|
76 issue
|
Chris@1115
|
77 end
|
Chris@1115
|
78
|
Chris@1115
|
79 # Generates an issue with 2 children and a grandchild
|
Chris@1115
|
80 def Issue.generate_with_descendants!(attributes={})
|
Chris@1115
|
81 issue = Issue.generate!(attributes)
|
Chris@1115
|
82 child = Issue.generate!(:project => issue.project, :subject => 'Child1', :parent_issue_id => issue.id)
|
Chris@1115
|
83 Issue.generate!(:project => issue.project, :subject => 'Child2', :parent_issue_id => issue.id)
|
Chris@1115
|
84 Issue.generate!(:project => issue.project, :subject => 'Child11', :parent_issue_id => child.id)
|
Chris@1115
|
85 issue.reload
|
Chris@1115
|
86 end
|
Chris@1115
|
87
|
Chris@1115
|
88 def Journal.generate!(attributes={})
|
Chris@1115
|
89 journal = Journal.new(attributes)
|
Chris@1115
|
90 journal.user ||= User.first
|
Chris@1115
|
91 journal.journalized ||= Issue.first
|
Chris@1115
|
92 yield journal if block_given?
|
Chris@1115
|
93 journal.save!
|
Chris@1115
|
94 journal
|
Chris@1115
|
95 end
|
Chris@1115
|
96
|
Chris@1115
|
97 def Version.generate!(attributes={})
|
Chris@1115
|
98 @generated_version_name ||= 'Version 0'
|
Chris@1115
|
99 @generated_version_name.succ!
|
Chris@1115
|
100 version = Version.new(attributes)
|
Chris@1295
|
101 version.name = @generated_version_name.dup if version.name.blank?
|
Chris@1115
|
102 yield version if block_given?
|
Chris@1115
|
103 version.save!
|
Chris@1115
|
104 version
|
Chris@1115
|
105 end
|
Chris@1115
|
106
|
Chris@1295
|
107 def TimeEntry.generate!(attributes={})
|
Chris@1295
|
108 entry = TimeEntry.new(attributes)
|
Chris@1295
|
109 entry.user ||= User.find(2)
|
Chris@1295
|
110 entry.issue ||= Issue.find(1) unless entry.project
|
Chris@1295
|
111 entry.project ||= entry.issue.project
|
Chris@1295
|
112 entry.activity ||= TimeEntryActivity.first
|
Chris@1295
|
113 entry.spent_on ||= Date.today
|
Chris@1295
|
114 entry.hours ||= 1.0
|
Chris@1295
|
115 entry.save!
|
Chris@1295
|
116 entry
|
Chris@1295
|
117 end
|
Chris@1295
|
118
|
Chris@1115
|
119 def AuthSource.generate!(attributes={})
|
Chris@1115
|
120 @generated_auth_source_name ||= 'Auth 0'
|
Chris@1115
|
121 @generated_auth_source_name.succ!
|
Chris@1115
|
122 source = AuthSource.new(attributes)
|
Chris@1295
|
123 source.name = @generated_auth_source_name.dup if source.name.blank?
|
Chris@1115
|
124 yield source if block_given?
|
Chris@1115
|
125 source.save!
|
Chris@1115
|
126 source
|
Chris@1115
|
127 end
|
Chris@1115
|
128
|
Chris@1115
|
129 def Board.generate!(attributes={})
|
Chris@1115
|
130 @generated_board_name ||= 'Forum 0'
|
Chris@1115
|
131 @generated_board_name.succ!
|
Chris@1115
|
132 board = Board.new(attributes)
|
Chris@1295
|
133 board.name = @generated_board_name.dup if board.name.blank?
|
Chris@1295
|
134 board.description = @generated_board_name.dup if board.description.blank?
|
Chris@1115
|
135 yield board if block_given?
|
Chris@1115
|
136 board.save!
|
Chris@1115
|
137 board
|
Chris@1115
|
138 end
|
Chris@1294
|
139
|
Chris@1294
|
140 def Attachment.generate!(attributes={})
|
Chris@1294
|
141 @generated_filename ||= 'testfile0'
|
Chris@1294
|
142 @generated_filename.succ!
|
Chris@1294
|
143 attributes = attributes.dup
|
Chris@1294
|
144 attachment = Attachment.new(attributes)
|
Chris@1294
|
145 attachment.container ||= Issue.find(1)
|
Chris@1294
|
146 attachment.author ||= User.find(2)
|
Chris@1295
|
147 attachment.filename = @generated_filename.dup if attachment.filename.blank?
|
Chris@1294
|
148 attachment.save!
|
Chris@1294
|
149 attachment
|
Chris@1294
|
150 end
|
Chris@1295
|
151
|
Chris@1295
|
152 def CustomField.generate!(attributes={})
|
Chris@1295
|
153 @generated_custom_field_name ||= 'Custom field 0'
|
Chris@1295
|
154 @generated_custom_field_name.succ!
|
Chris@1295
|
155 field = new(attributes)
|
Chris@1295
|
156 field.name = @generated_custom_field_name.dup if field.name.blank?
|
Chris@1295
|
157 field.field_format = 'string' if field.field_format.blank?
|
Chris@1295
|
158 yield field if block_given?
|
Chris@1295
|
159 field.save!
|
Chris@1295
|
160 field
|
Chris@1295
|
161 end
|
Chris@1115
|
162 end
|