summaryrefslogtreecommitdiffstats
path: root/test/object_daddy_helpers.rb
blob: ce6e00bd7d6215ff9dccce20f91a32ad4dcf8feb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
module ObjectDaddyHelpers
  # TODO: The gem or official version of ObjectDaddy doesn't set
  # protected attributes so they need to be wrapped.
  def User.generate_with_protected(attributes={})
    user = User.spawn_with_protected(attributes)
    user.save
    user
  end

  # TODO: The gem or official version of ObjectDaddy doesn't set
  # protected attributes so they need to be wrapped.
  def User.generate_with_protected!(attributes={})
    user = User.spawn_with_protected(attributes)
    user.save!
    user
  end

  # TODO: The gem or official version of ObjectDaddy doesn't set
  # protected attributes so they need to be wrapped.
  def User.spawn_with_protected(attributes={})
    user = User.spawn(attributes) do |user|
      user.login = User.next_login
      attributes.each do |attr,v|
        user.send("#{attr}=", v)
      end
    end
    user
  end

  # Generate the default Query
  def Query.generate_default!(attributes={})
    query = Query.spawn(attributes)
    query.name ||= '_'
    query.save!
    query
  end

  # Generate an issue for a project, using it's trackers
  def Issue.generate_for_project!(project, attributes={})
    issue = Issue.spawn(attributes) do |issue|
      issue.project = project
    end
    issue.tracker = project.trackers.first unless project.trackers.empty?
    issue.save!
    issue
  end

end