To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / .svn / pristine / 00 / 00bd76ee7194e922fe9340f2d39d910c9f79b20e.svn-base @ 1298:4f746d8966dd

History | View | Annotate | Download (5.02 KB)

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