annotate test/object_helpers.rb @ 1600:ed9c467ef922 dockerise

Add hggit extension
author Chris Cannam
date Wed, 23 Aug 2017 11:32:50 +0100
parents dffacf8a6908
children
rev   line source
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