object_helpers.rb
276 lines
| 8.1 KiB
| text/x-ruby
|
RubyLexer
/ test / object_helpers.rb
|
r9336 | module ObjectHelpers | ||
|
r9335 | def User.generate!(attributes={}) | ||
@generated_user_login ||= 'user0' | ||||
@generated_user_login.succ! | ||||
user = User.new(attributes) | ||||
|
r11092 | user.login = @generated_user_login.dup if user.login.blank? | ||
|
r9335 | user.mail = "#{@generated_user_login}@example.com" if user.mail.blank? | ||
user.firstname = "Bob" if user.firstname.blank? | ||||
user.lastname = "Doe" if user.lastname.blank? | ||||
yield user if block_given? | ||||
user.save! | ||||
user | ||||
end | ||||
|
r10053 | def User.add_to_project(user, project, roles=nil) | ||
roles = Role.find(1) if roles.nil? | ||||
|
r13100 | roles = [roles] if roles.is_a?(Role) | ||
|
r9339 | Member.create!(:principal => user, :project => project, :roles => roles) | ||
end | ||||
|
r9335 | def Group.generate!(attributes={}) | ||
@generated_group_name ||= 'Group 0' | ||||
@generated_group_name.succ! | ||||
group = Group.new(attributes) | ||||
|
r11092 | group.name = @generated_group_name.dup if group.name.blank? | ||
|
r9335 | yield group if block_given? | ||
group.save! | ||||
group | ||||
end | ||||
def Project.generate!(attributes={}) | ||||
@generated_project_identifier ||= 'project-0000' | ||||
@generated_project_identifier.succ! | ||||
project = Project.new(attributes) | ||||
|
r11092 | project.name = @generated_project_identifier.dup if project.name.blank? | ||
project.identifier = @generated_project_identifier.dup if project.identifier.blank? | ||||
|
r9335 | yield project if block_given? | ||
project.save! | ||||
project | ||||
end | ||||
|
r14237 | def Project.generate_with_parent!(*args) | ||
attributes = args.last.is_a?(Hash) ? args.pop : {} | ||||
parent = args.size > 0 ? args.first : Project.generate! | ||||
|
r13465 | project = Project.generate!(attributes) do |p| | ||
p.parent = parent | ||||
end | ||||
parent.reload if parent | ||||
|
r11068 | project | ||
end | ||||
|
r13153 | def IssueStatus.generate!(attributes={}) | ||
@generated_status_name ||= 'Status 0' | ||||
@generated_status_name.succ! | ||||
status = IssueStatus.new(attributes) | ||||
status.name = @generated_status_name.dup if status.name.blank? | ||||
yield status if block_given? | ||||
status.save! | ||||
status | ||||
end | ||||
|
r14953 | def Tracker.generate(attributes={}) | ||
|
r9335 | @generated_tracker_name ||= 'Tracker 0' | ||
@generated_tracker_name.succ! | ||||
tracker = Tracker.new(attributes) | ||||
|
r11092 | tracker.name = @generated_tracker_name.dup if tracker.name.blank? | ||
|
r13153 | tracker.default_status ||= IssueStatus.order('position').first || IssueStatus.generate! | ||
|
r9335 | yield tracker if block_given? | ||
|
r14953 | tracker | ||
end | ||||
def Tracker.generate!(attributes={}, &block) | ||||
tracker = Tracker.generate(attributes, &block) | ||||
|
r9335 | tracker.save! | ||
tracker | ||||
end | ||||
def Role.generate!(attributes={}) | ||||
@generated_role_name ||= 'Role 0' | ||||
@generated_role_name.succ! | ||||
role = Role.new(attributes) | ||||
|
r11092 | role.name = @generated_role_name.dup if role.name.blank? | ||
|
r9335 | yield role if block_given? | ||
role.save! | ||||
role | ||||
end | ||||
|
r11701 | # Generates an unsaved Issue | ||
def Issue.generate(attributes={}) | ||||
|
r9335 | issue = Issue.new(attributes) | ||
|
r10400 | issue.project ||= Project.find(1) | ||
issue.tracker ||= issue.project.trackers.first | ||||
|
r9335 | issue.subject = 'Generated' if issue.subject.blank? | ||
issue.author ||= User.find(2) | ||||
yield issue if block_given? | ||||
|
r11701 | issue | ||
end | ||||
# Generates a saved Issue | ||||
def Issue.generate!(attributes={}, &block) | ||||
issue = Issue.generate(attributes, &block) | ||||
|
r9335 | issue.save! | ||
issue | ||||
end | ||||
|
r10401 | # Generates an issue with 2 children and a grandchild | ||
def Issue.generate_with_descendants!(attributes={}) | ||||
issue = Issue.generate!(attributes) | ||||
child = Issue.generate!(:project => issue.project, :subject => 'Child1', :parent_issue_id => issue.id) | ||||
Issue.generate!(:project => issue.project, :subject => 'Child2', :parent_issue_id => issue.id) | ||||
Issue.generate!(:project => issue.project, :subject => 'Child11', :parent_issue_id => child.id) | ||||
|
r10144 | issue.reload | ||
end | ||||
|
r13887 | def Issue.generate_with_child!(attributes={}) | ||
issue = Issue.generate!(attributes) | ||||
Issue.generate!(:parent_issue_id => issue.id) | ||||
issue.reload | ||||
end | ||||
|
r10336 | def Journal.generate!(attributes={}) | ||
journal = Journal.new(attributes) | ||||
journal.user ||= User.first | ||||
journal.journalized ||= Issue.first | ||||
yield journal if block_given? | ||||
journal.save! | ||||
journal | ||||
end | ||||
|
r9335 | def Version.generate!(attributes={}) | ||
@generated_version_name ||= 'Version 0' | ||||
@generated_version_name.succ! | ||||
version = Version.new(attributes) | ||||
|
r11092 | version.name = @generated_version_name.dup if version.name.blank? | ||
|
r13994 | version.project ||= Project.find(1) | ||
|
r9335 | yield version if block_given? | ||
version.save! | ||||
version | ||||
end | ||||
|
r10941 | def TimeEntry.generate!(attributes={}) | ||
entry = TimeEntry.new(attributes) | ||||
entry.user ||= User.find(2) | ||||
|
r11533 | entry.issue ||= Issue.find(1) unless entry.project | ||
|
r10941 | entry.project ||= entry.issue.project | ||
entry.activity ||= TimeEntryActivity.first | ||||
entry.spent_on ||= Date.today | ||||
|
r11533 | entry.hours ||= 1.0 | ||
|
r10941 | entry.save! | ||
entry | ||||
end | ||||
|
r9335 | def AuthSource.generate!(attributes={}) | ||
@generated_auth_source_name ||= 'Auth 0' | ||||
@generated_auth_source_name.succ! | ||||
source = AuthSource.new(attributes) | ||||
|
r11092 | source.name = @generated_auth_source_name.dup if source.name.blank? | ||
|
r9335 | yield source if block_given? | ||
source.save! | ||||
source | ||||
|
r3964 | end | ||
|
r9959 | |||
def Board.generate!(attributes={}) | ||||
@generated_board_name ||= 'Forum 0' | ||||
@generated_board_name.succ! | ||||
board = Board.new(attributes) | ||||
|
r11092 | board.name = @generated_board_name.dup if board.name.blank? | ||
board.description = @generated_board_name.dup if board.description.blank? | ||||
|
r9959 | yield board if block_given? | ||
board.save! | ||||
board | ||||
end | ||||
|
r10966 | |||
def Attachment.generate!(attributes={}) | ||||
@generated_filename ||= 'testfile0' | ||||
@generated_filename.succ! | ||||
attributes = attributes.dup | ||||
attachment = Attachment.new(attributes) | ||||
attachment.container ||= Issue.find(1) | ||||
attachment.author ||= User.find(2) | ||||
|
r11092 | attachment.filename = @generated_filename.dup if attachment.filename.blank? | ||
|
r10966 | attachment.save! | ||
attachment | ||||
end | ||||
|
r11530 | |||
def CustomField.generate!(attributes={}) | ||||
@generated_custom_field_name ||= 'Custom field 0' | ||||
@generated_custom_field_name.succ! | ||||
field = new(attributes) | ||||
field.name = @generated_custom_field_name.dup if field.name.blank? | ||||
field.field_format = 'string' if field.field_format.blank? | ||||
yield field if block_given? | ||||
field.save! | ||||
field | ||||
end | ||||
|
r11978 | |||
|
r14386 | def IssueCustomField.generate!(attributes={}) | ||
super do |field| | ||||
field.is_for_all = true unless attributes.key?(:is_for_all) | ||||
field.tracker_ids = Tracker.all.ids unless attributes.key?(:tracker_ids) || attributes.key?(:trackers) | ||||
end | ||||
end | ||||
|
r11978 | def Changeset.generate!(attributes={}) | ||
@generated_changeset_rev ||= '123456' | ||||
@generated_changeset_rev.succ! | ||||
changeset = new(attributes) | ||||
changeset.repository ||= Project.find(1).repository | ||||
changeset.revision ||= @generated_changeset_rev | ||||
changeset.committed_on ||= Time.now | ||||
yield changeset if block_given? | ||||
changeset.save! | ||||
changeset | ||||
end | ||||
|
r13122 | |||
def Query.generate!(attributes={}) | ||||
query = new(attributes) | ||||
query.name = "Generated query" if query.name.blank? | ||||
query.user ||= User.find(1) | ||||
query.save! | ||||
query | ||||
end | ||||
|
r14111 | |||
def generate_import(fixture_name='import_issues.csv') | ||||
import = IssueImport.new | ||||
import.user_id = 2 | ||||
import.file = uploaded_test_file(fixture_name, 'text/csv') | ||||
import.save! | ||||
import | ||||
end | ||||
def generate_import_with_mapping(fixture_name='import_issues.csv') | ||||
import = generate_import(fixture_name) | ||||
import.settings = { | ||||
'separator' => ";", 'wrapper' => '"', 'encoding' => "UTF-8", | ||||
'mapping' => {'project_id' => '1', 'tracker_id' => '2', 'subject' => '1'} | ||||
} | ||||
import.save! | ||||
import | ||||
end | ||||
|
r2824 | end | ||
|
r12471 | |||
|
r13153 | module TrackerObjectHelpers | ||
def generate_transitions!(*args) | ||||
options = args.last.is_a?(Hash) ? args.pop : {} | ||||
if args.size == 1 | ||||
args << args.first | ||||
end | ||||
if options[:clear] | ||||
WorkflowTransition.where(:tracker_id => id).delete_all | ||||
end | ||||
args.each_cons(2) do |old_status_id, new_status_id| | ||||
WorkflowTransition.create!( | ||||
:tracker => self, | ||||
:role_id => (options[:role_id] || 1), | ||||
:old_status_id => old_status_id, | ||||
:new_status_id => new_status_id | ||||
) | ||||
end | ||||
end | ||||
end | ||||
Tracker.send :include, TrackerObjectHelpers | ||||
|
r12471 | module IssueObjectHelpers | ||
def close! | ||||
self.status = IssueStatus.where(:is_closed => true).first | ||||
save! | ||||
end | ||||
def generate_child!(attributes={}) | ||||
Issue.generate!(attributes.merge(:parent_issue_id => self.id)) | ||||
end | ||||
end | ||||
Issue.send :include, IssueObjectHelpers | ||||