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.

object_helpers.rb 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 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)
  15. roles = [roles] unless roles.is_a?(Array)
  16. Member.create!(:principal => user, :project => project, :roles => roles)
  17. end
  18. def Group.generate!(attributes={})
  19. @generated_group_name ||= 'Group 0'
  20. @generated_group_name.succ!
  21. group = Group.new(attributes)
  22. group.lastname = @generated_group_name if group.lastname.blank?
  23. yield group if block_given?
  24. group.save!
  25. group
  26. end
  27. def Project.generate!(attributes={})
  28. @generated_project_identifier ||= 'project-0000'
  29. @generated_project_identifier.succ!
  30. project = Project.new(attributes)
  31. project.name = @generated_project_identifier if project.name.blank?
  32. project.identifier = @generated_project_identifier if project.identifier.blank?
  33. yield project if block_given?
  34. project.save!
  35. project
  36. end
  37. def Tracker.generate!(attributes={})
  38. @generated_tracker_name ||= 'Tracker 0'
  39. @generated_tracker_name.succ!
  40. tracker = Tracker.new(attributes)
  41. tracker.name = @generated_tracker_name if tracker.name.blank?
  42. yield tracker if block_given?
  43. tracker.save!
  44. tracker
  45. end
  46. def Role.generate!(attributes={})
  47. @generated_role_name ||= 'Role 0'
  48. @generated_role_name.succ!
  49. role = Role.new(attributes)
  50. role.name = @generated_role_name if role.name.blank?
  51. yield role if block_given?
  52. role.save!
  53. role
  54. end
  55. def Issue.generate!(attributes={})
  56. issue = Issue.new(attributes)
  57. issue.subject = 'Generated' if issue.subject.blank?
  58. issue.author ||= User.find(2)
  59. yield issue if block_given?
  60. issue.save!
  61. issue
  62. end
  63. # Generate an issue for a project, using its trackers
  64. def Issue.generate_for_project!(project, attributes={})
  65. issue = Issue.new(attributes) do |issue|
  66. issue.project = project
  67. issue.tracker = project.trackers.first unless project.trackers.empty?
  68. issue.subject = 'Generated' if issue.subject.blank?
  69. issue.author ||= User.find(2)
  70. yield issue if block_given?
  71. end
  72. issue.save!
  73. issue
  74. end
  75. def Version.generate!(attributes={})
  76. @generated_version_name ||= 'Version 0'
  77. @generated_version_name.succ!
  78. version = Version.new(attributes)
  79. version.name = @generated_version_name if version.name.blank?
  80. yield version if block_given?
  81. version.save!
  82. version
  83. end
  84. def AuthSource.generate!(attributes={})
  85. @generated_auth_source_name ||= 'Auth 0'
  86. @generated_auth_source_name.succ!
  87. source = AuthSource.new(attributes)
  88. source.name = @generated_auth_source_name if source.name.blank?
  89. yield source if block_given?
  90. source.save!
  91. source
  92. end
  93. end