diff options
author | Aaron Stone <aaron@serendipity.cx> | 2012-10-19 01:25:19 -0700 |
---|---|---|
committer | Aaron Stone <aaron@serendipity.cx> | 2012-10-19 01:25:19 -0700 |
commit | 72df8ecb489c13a0bf7bdb78455e6d523404dd8b (patch) | |
tree | a679f32dcd76aaac2b3e37a7ff0fc4de0d593f93 | |
parent | 821c66fe76056784f84376e5beb4d2de629998ed (diff) |
Dummy provider raises an exception if it is used. Tests to prove it.
-rw-r--r-- | lib/puppet/provider/vcsrepo/dummy.rb | 5 | ||||
-rw-r--r-- | spec/unit/puppet/provider/vcsrepo/dummy_spec.rb | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/puppet/provider/vcsrepo/dummy.rb b/lib/puppet/provider/vcsrepo/dummy.rb index f76e090..f7b4e54 100644 --- a/lib/puppet/provider/vcsrepo/dummy.rb +++ b/lib/puppet/provider/vcsrepo/dummy.rb @@ -4,4 +4,9 @@ Puppet::Type.type(:vcsrepo).provide(:dummy, :parent => Puppet::Provider::Vcsrepo desc "Dummy default provider" defaultfor :vcsrepo => :dummy + + def working_copy_exists? + providers = @resource.class.providers.map{|x| x.to_s}.sort.reject{|x| x == "dummy"}.join(", ") rescue "none" + raise("vcsrepo resource must have a provider, available: #{providers}") + end end diff --git a/spec/unit/puppet/provider/vcsrepo/dummy_spec.rb b/spec/unit/puppet/provider/vcsrepo/dummy_spec.rb new file mode 100644 index 0000000..a945888 --- /dev/null +++ b/spec/unit/puppet/provider/vcsrepo/dummy_spec.rb @@ -0,0 +1,17 @@ +require 'spec_helper' + +describe_provider :vcsrepo, :dummy, :resource => {:path => '/tmp/vcsrepo'} do + + context 'dummy' do + resource_with :source do + resource_with :ensure => :present do + context "with nothing doing", :resource => {:revision => 'foo'} do + it "should raise an exception" do + proc { provider.working_copy_exists? }.should raise_error(RuntimeError) + end + end + end + end + end + +end |