Chris@1115: module ObjectHelpers Chris@1115: def User.generate!(attributes={}) Chris@1115: @generated_user_login ||= 'user0' Chris@1115: @generated_user_login.succ! Chris@1115: user = User.new(attributes) Chris@1464: user.login = @generated_user_login.dup if user.login.blank? Chris@1115: user.mail = "#{@generated_user_login}@example.com" if user.mail.blank? Chris@1115: user.firstname = "Bob" if user.firstname.blank? Chris@1115: user.lastname = "Doe" if user.lastname.blank? Chris@1115: yield user if block_given? Chris@1115: user.save! Chris@1115: user Chris@1115: end Chris@1115: Chris@1115: def User.add_to_project(user, project, roles=nil) Chris@1115: roles = Role.find(1) if roles.nil? Chris@1115: roles = [roles] unless roles.is_a?(Array) Chris@1115: Member.create!(:principal => user, :project => project, :roles => roles) Chris@1115: end Chris@1115: Chris@1115: def Group.generate!(attributes={}) Chris@1115: @generated_group_name ||= 'Group 0' Chris@1115: @generated_group_name.succ! Chris@1115: group = Group.new(attributes) Chris@1464: group.name = @generated_group_name.dup if group.name.blank? Chris@1115: yield group if block_given? Chris@1115: group.save! Chris@1115: group Chris@1115: end Chris@1115: Chris@1115: def Project.generate!(attributes={}) Chris@1115: @generated_project_identifier ||= 'project-0000' Chris@1115: @generated_project_identifier.succ! Chris@1115: project = Project.new(attributes) Chris@1464: project.name = @generated_project_identifier.dup if project.name.blank? Chris@1464: project.identifier = @generated_project_identifier.dup if project.identifier.blank? Chris@1115: yield project if block_given? Chris@1115: project.save! Chris@1115: project Chris@1115: end Chris@1115: Chris@1464: def Project.generate_with_parent!(parent, attributes={}) Chris@1464: project = Project.generate!(attributes) Chris@1464: project.set_parent!(parent) Chris@1464: project Chris@1464: end Chris@1464: Chris@1115: def Tracker.generate!(attributes={}) Chris@1115: @generated_tracker_name ||= 'Tracker 0' Chris@1115: @generated_tracker_name.succ! Chris@1115: tracker = Tracker.new(attributes) Chris@1464: tracker.name = @generated_tracker_name.dup if tracker.name.blank? Chris@1115: yield tracker if block_given? Chris@1115: tracker.save! Chris@1115: tracker Chris@1115: end Chris@1115: Chris@1115: def Role.generate!(attributes={}) Chris@1115: @generated_role_name ||= 'Role 0' Chris@1115: @generated_role_name.succ! Chris@1115: role = Role.new(attributes) Chris@1464: role.name = @generated_role_name.dup if role.name.blank? Chris@1115: yield role if block_given? Chris@1115: role.save! Chris@1115: role Chris@1115: end Chris@1115: Chris@1464: # Generates an unsaved Issue Chris@1464: def Issue.generate(attributes={}) Chris@1115: issue = Issue.new(attributes) Chris@1115: issue.project ||= Project.find(1) Chris@1115: issue.tracker ||= issue.project.trackers.first Chris@1115: issue.subject = 'Generated' if issue.subject.blank? Chris@1115: issue.author ||= User.find(2) Chris@1115: yield issue if block_given? Chris@1464: issue Chris@1464: end Chris@1464: Chris@1464: # Generates a saved Issue Chris@1464: def Issue.generate!(attributes={}, &block) Chris@1464: issue = Issue.generate(attributes, &block) Chris@1115: issue.save! Chris@1115: issue Chris@1115: end Chris@1115: Chris@1115: # Generates an issue with 2 children and a grandchild Chris@1115: def Issue.generate_with_descendants!(attributes={}) Chris@1115: issue = Issue.generate!(attributes) Chris@1115: child = Issue.generate!(:project => issue.project, :subject => 'Child1', :parent_issue_id => issue.id) Chris@1115: Issue.generate!(:project => issue.project, :subject => 'Child2', :parent_issue_id => issue.id) Chris@1115: Issue.generate!(:project => issue.project, :subject => 'Child11', :parent_issue_id => child.id) Chris@1115: issue.reload Chris@1115: end Chris@1115: Chris@1115: def Journal.generate!(attributes={}) Chris@1115: journal = Journal.new(attributes) Chris@1115: journal.user ||= User.first Chris@1115: journal.journalized ||= Issue.first Chris@1115: yield journal if block_given? Chris@1115: journal.save! Chris@1115: journal Chris@1115: end Chris@1115: Chris@1115: def Version.generate!(attributes={}) Chris@1115: @generated_version_name ||= 'Version 0' Chris@1115: @generated_version_name.succ! Chris@1115: version = Version.new(attributes) Chris@1464: version.name = @generated_version_name.dup if version.name.blank? Chris@1115: yield version if block_given? Chris@1115: version.save! Chris@1115: version Chris@1115: end Chris@1115: Chris@1464: def TimeEntry.generate!(attributes={}) Chris@1464: entry = TimeEntry.new(attributes) Chris@1464: entry.user ||= User.find(2) Chris@1464: entry.issue ||= Issue.find(1) unless entry.project Chris@1464: entry.project ||= entry.issue.project Chris@1464: entry.activity ||= TimeEntryActivity.first Chris@1464: entry.spent_on ||= Date.today Chris@1464: entry.hours ||= 1.0 Chris@1464: entry.save! Chris@1464: entry Chris@1464: end Chris@1464: Chris@1115: def AuthSource.generate!(attributes={}) Chris@1115: @generated_auth_source_name ||= 'Auth 0' Chris@1115: @generated_auth_source_name.succ! Chris@1115: source = AuthSource.new(attributes) Chris@1464: source.name = @generated_auth_source_name.dup if source.name.blank? Chris@1115: yield source if block_given? Chris@1115: source.save! Chris@1115: source Chris@1115: end Chris@1115: Chris@1115: def Board.generate!(attributes={}) Chris@1115: @generated_board_name ||= 'Forum 0' Chris@1115: @generated_board_name.succ! Chris@1115: board = Board.new(attributes) Chris@1464: board.name = @generated_board_name.dup if board.name.blank? Chris@1464: board.description = @generated_board_name.dup if board.description.blank? Chris@1115: yield board if block_given? Chris@1115: board.save! Chris@1115: board Chris@1115: end Chris@1294: Chris@1294: def Attachment.generate!(attributes={}) Chris@1294: @generated_filename ||= 'testfile0' Chris@1294: @generated_filename.succ! Chris@1294: attributes = attributes.dup Chris@1294: attachment = Attachment.new(attributes) Chris@1294: attachment.container ||= Issue.find(1) Chris@1294: attachment.author ||= User.find(2) Chris@1464: attachment.filename = @generated_filename.dup if attachment.filename.blank? Chris@1294: attachment.save! Chris@1294: attachment Chris@1294: end Chris@1464: Chris@1464: def CustomField.generate!(attributes={}) Chris@1464: @generated_custom_field_name ||= 'Custom field 0' Chris@1464: @generated_custom_field_name.succ! Chris@1464: field = new(attributes) Chris@1464: field.name = @generated_custom_field_name.dup if field.name.blank? Chris@1464: field.field_format = 'string' if field.field_format.blank? Chris@1464: yield field if block_given? Chris@1464: field.save! Chris@1464: field Chris@1464: end Chris@1464: Chris@1464: def Changeset.generate!(attributes={}) Chris@1464: @generated_changeset_rev ||= '123456' Chris@1464: @generated_changeset_rev.succ! Chris@1464: changeset = new(attributes) Chris@1464: changeset.repository ||= Project.find(1).repository Chris@1464: changeset.revision ||= @generated_changeset_rev Chris@1464: changeset.committed_on ||= Time.now Chris@1464: yield changeset if block_given? Chris@1464: changeset.save! Chris@1464: changeset Chris@1464: end Chris@1115: end