summaryrefslogtreecommitdiffstats
path: root/test/ral/manager
diff options
context:
space:
mode:
Diffstat (limited to 'test/ral/manager')
-rwxr-xr-xtest/ral/manager/attributes.rb45
-rwxr-xr-xtest/ral/manager/provider.rb52
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$