summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Stone <aaron@serendipity.cx>2012-10-19 01:25:19 -0700
committerAaron Stone <aaron@serendipity.cx>2012-10-19 01:25:19 -0700
commit72df8ecb489c13a0bf7bdb78455e6d523404dd8b (patch)
treea679f32dcd76aaac2b3e37a7ff0fc4de0d593f93
parent821c66fe76056784f84376e5beb4d2de629998ed (diff)
Dummy provider raises an exception if it is used. Tests to prove it.
-rw-r--r--lib/puppet/provider/vcsrepo/dummy.rb5
-rw-r--r--spec/unit/puppet/provider/vcsrepo/dummy_spec.rb17
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