diff options
Diffstat (limited to 'test/ral/manager/provider.rb')
| -rwxr-xr-x | test/ral/manager/provider.rb | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/ral/manager/provider.rb b/test/ral/manager/provider.rb new file mode 100755 index 000000000..6075697d6 --- /dev/null +++ b/test/ral/manager/provider.rb @@ -0,0 +1,52 @@ +#!/usr/bin/env ruby + +$:.unshift("../../lib") if __FILE__ =~ /\.rb$/ + +require 'puppettest' +require 'mocha' + +class TestTypeProviders < Test::Unit::TestCase + include PuppetTest + + # Make sure default providers behave correctly + def test_defaultproviders + # Make a fake type + type = Puppet::Type.newtype(:defaultprovidertest) do + newparam(:name) do end + end + + basic = type.provide(:basic) do + defaultfor :operatingsystem => :somethingelse, + :operatingsystemrelease => :yayness + end + + assert_equal(basic, type.defaultprovider) + type.defaultprovider = nil + + greater = type.provide(:greater) do + defaultfor :operatingsystem => Facter.value("operatingsystem") + end + + assert_equal(greater, type.defaultprovider) + end + + # Make sure the provider is always the first parameter created. + def test_provider_sorting + type = Puppet::Type.newtype(:sorttest) do + newparam(:name) {} + ensurable + end + cleanup { Puppet::Type.rmtype(:sorttest) } + + should = [:name, :ensure] + assert_equal(should, type.allattrs.reject { |p| ! should.include?(p) }, + "Got wrong order of parameters") + + type.provide(:yay) { } + should = [:name, :provider, :ensure] + assert_equal(should, type.allattrs.reject { |p| ! should.include?(p) }, + "Providify did not reorder parameters") + end +end + +# $Id$ |
