~bkerensa/ubuntu/raring/puppet/new-upstream-release

« back to all changes in this revision

Viewing changes to test/rails/railsparameter.rb

  • Committer: Benjamin Kerensa
  • Date: 2012-11-21 23:50:52 UTC
  • mfrom: (1.1.30)
  • Revision ID: bkerensa@ubuntu.com-20121121235052-ah7nzabp77sh69gb
New Upstream Release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env ruby
2
 
 
3
 
require File.expand_path(File.dirname(__FILE__) + '/../lib/puppettest')
4
 
 
5
 
require 'puppet'
6
 
require 'puppet/rails'
7
 
require 'puppettest'
8
 
require 'puppettest/railstesting'
9
 
 
10
 
# Don't do any tests w/out this class
11
 
if defined? ::ActiveRecord::Base
12
 
class TestRailsParameter < Test::Unit::TestCase
13
 
  include PuppetTest::RailsTesting
14
 
 
15
 
  def params
16
 
    {"myname" => "myval", "multiple" => %w{one two three}}
17
 
  end
18
 
 
19
 
  # Create a resource param from a rails parameter
20
 
  def test_to_resourceparam
21
 
    railsinit
22
 
 
23
 
    # Now create a source
24
 
    parser = mkparser
25
 
    source = parser.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "myclass")
26
 
 
27
 
    host = Puppet::Rails::Host.new(:name => "myhost")
28
 
 
29
 
    host.save
30
 
 
31
 
 
32
 
      resource = host.resources.create(
33
 
 
34
 
        :title => "/tmp/to_resource",
35
 
        :restype => "file",
36
 
 
37
 
        :exported => true)
38
 
 
39
 
    # Use array and non-array values, to make sure we get things back in
40
 
    # the same form.
41
 
    params.each do |name, value|
42
 
      param = Puppet::Rails::ParamName.find_or_create_by_name(name)
43
 
      if value.is_a? Array
44
 
        values = value
45
 
      else
46
 
        values = [value]
47
 
      end
48
 
      valueobjects = values.collect do |v|
49
 
 
50
 
        resource.param_values.create(
51
 
          :value => v,
52
 
 
53
 
            :param_name => param)
54
 
      end
55
 
 
56
 
      assert(param, "Did not create rails parameter")
57
 
 
58
 
      # The id doesn't get assigned until we save
59
 
    end
60
 
 
61
 
    resource.save
62
 
 
63
 
    # And try to convert our parameter
64
 
    params.each do |name, value|
65
 
      param = Puppet::Rails::ParamName.find_by_name(name)
66
 
      pp = nil
67
 
      assert_nothing_raised do
68
 
        pp = param.to_resourceparam(resource, source)
69
 
      end
70
 
 
71
 
      assert_instance_of(Puppet::Parser::Resource::Param, pp)
72
 
      assert_equal(name.to_sym, pp.name, "parameter name was not equal")
73
 
      assert_equal(value,  pp.value, "value was not equal for #{value.inspect}")
74
 
    end
75
 
  end
76
 
end
77
 
else
78
 
  $stderr.puts "Install Rails for Rails and Caching tests"
79
 
end
80