diff options
Diffstat (limited to 'test/ral/manager')
| -rwxr-xr-x | test/ral/manager/attributes.rb | 45 | ||||
| -rwxr-xr-x | test/ral/manager/provider.rb | 52 |
2 files changed, 97 insertions, 0 deletions
diff --git a/test/ral/manager/attributes.rb b/test/ral/manager/attributes.rb index 6fd132aef..f27b0513a 100755 --- a/test/ral/manager/attributes.rb +++ b/test/ral/manager/attributes.rb @@ -182,6 +182,51 @@ class TestTypeAttributes < Test::Unit::TestCase end assert_equal(false, inst[:falsetest], "false default was not set") end + + def test_alias_parameter + type = mktype + type.newparam(:name) {} + type.newparam(:one) {} + type.newproperty(:two) {} + + aliases = { + :three => :one, + :four => :two + } + aliases.each do |new, old| + assert_nothing_raised("Could not create alias parameter %s" % new) do + type.set_attr_alias new => old + end + end + + aliases.each do |new, old| + assert_equal(old, type.attr_alias(new), "did not return alias info for %s" % + new) + end + + assert_nil(type.attr_alias(:name), "got invalid alias info for name") + + inst = type.create(:name => "my name") + assert(inst, "could not create instance") + + aliases.each do |new, old| + val = "value %s" % new + assert_nothing_raised do + inst[new] = val + end + + case old + when :one: # param + assert_equal(val, inst[new], + "Incorrect alias value for %s in []" % new) + else + assert_equal(val, inst.should(new), + "Incorrect alias value for %s in should" % new) + end + assert_equal(val, inst.value(new), "Incorrect alias value for %s" % new) + assert_equal(val, inst.value(old), "Incorrect orig value for %s" % old) + end + end end # $Id$ 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$ |
