diff options
Diffstat (limited to 'test/rails/railsresource.rb')
-rwxr-xr-x | test/rails/railsresource.rb | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/rails/railsresource.rb b/test/rails/railsresource.rb new file mode 100755 index 000000000..86c3b4908 --- /dev/null +++ b/test/rails/railsresource.rb @@ -0,0 +1,60 @@ +#!/usr/bin/ruby + +require 'puppet' +require 'puppet/rails' +require 'puppettest' +require 'puppettest/railstesting' +require 'puppettest/resourcetesting' + +class TestRailsResource < Test::Unit::TestCase + include PuppetTest::RailsTesting + include PuppetTest::ResourceTesting + + # Don't do any tests w/out this class + if defined? ActiveRecord::Base + # Create a resource param from a rails parameter + def test_to_resource + railsinit + + # We need a host for resources + host = Puppet::Rails::Host.new(:name => "myhost") + + # Now build a resource + resource = host.rails_resources.build( + :title => "/tmp/to_resource", :restype => "file", + :exported => true + ) + + # Now add some params + {"owner" => "root", "mode" => "644"}.each do |param, value| + resource.rails_parameters.build( + :name => param, :value => value + ) + end + + # Now save the whole thing + host.save + + # Now, try to convert our resource to a real resource + + # We need a scope + interp, scope, source = mkclassframing + + res = nil + assert_nothing_raised do + res = resource.to_resource(scope) + end + + assert_instance_of(Puppet::Parser::Resource, res) + + assert_equal("root", res[:owner]) + assert_equal("644", res[:mode]) + assert_equal("/tmp/to_resource", res.title) + assert_equal(source, res.source) + end + else + $stderr.puts "Install Rails for Rails and Caching tests" + end +end + +# $Id$ |