You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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