Drop roles::debian_mirror::listen_addr for mirror-accumu
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / functions / assert_private_spec.rb
old mode 100755 (executable)
new mode 100644 (file)
index a009d28..ee7db0b
@@ -1,55 +1,38 @@
-#! /usr/bin/env ruby -S rspec
 require 'spec_helper'
 
-describe Puppet::Parser::Functions.function(:assert_private) do
-  let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
+describe 'assert_private' do
+  context 'when called from inside module' do
+    it 'does not fail' do
+      expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
+      expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('foo')
 
-  subject do
-    function_name = Puppet::Parser::Functions.function(:assert_private)
-    scope.method(function_name)
-  end
-
-  context "when called from inside module" do
-    it "should not fail" do
-      scope.expects(:lookupvar).with('module_name').returns('foo')
-      scope.expects(:lookupvar).with('caller_module_name').returns('foo')
-      expect {
-        subject.call []
-      }.not_to raise_error
+      is_expected.to run.with_params
     end
   end
 
-  context "with an explicit failure message" do
-    it "prints the failure message on error" do
-      scope.expects(:lookupvar).with('module_name').returns('foo')
-      scope.expects(:lookupvar).with('caller_module_name').returns('bar')
-      expect {
-        subject.call ['failure message!']
-      }.to raise_error Puppet::ParseError, /failure message!/
+  context 'when called from private class' do
+    it 'fails with a class error message' do
+      expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
+      expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('bar')
+      expect(scope.source).to receive(:name).and_return('foo::baz')
+      expect(scope.source).to receive(:type).and_return('hostclass')
+
+      is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Class foo::baz is private})
     end
-  end
 
-  context "when called from private class" do
-    it "should fail with a class error message" do
-      scope.expects(:lookupvar).with('module_name').returns('foo')
-      scope.expects(:lookupvar).with('caller_module_name').returns('bar')
-      scope.source.expects(:name).returns('foo::baz')
-      scope.source.expects(:type).returns('hostclass')
-      expect {
-        subject.call []
-      }.to raise_error Puppet::ParseError, /Class foo::baz is private/
+    it 'fails with an explicit failure message' do
+      is_expected.to run.with_params('failure message!').and_raise_error(Puppet::ParseError, %r{failure message!})
     end
   end
 
-  context "when called from private definition" do
-    it "should fail with a class error message" do
-      scope.expects(:lookupvar).with('module_name').returns('foo')
-      scope.expects(:lookupvar).with('caller_module_name').returns('bar')
-      scope.source.expects(:name).returns('foo::baz')
-      scope.source.expects(:type).returns('definition')
-      expect {
-        subject.call []
-      }.to raise_error Puppet::ParseError, /Definition foo::baz is private/
+  context 'when called from private definition' do
+    it 'fails with a class error message' do
+      expect(scope).to receive(:lookupvar).with('module_name').and_return('foo')
+      expect(scope).to receive(:lookupvar).with('caller_module_name').and_return('bar')
+      expect(scope.source).to receive(:name).and_return('foo::baz')
+      expect(scope.source).to receive(:type).and_return('definition')
+
+      is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Definition foo::baz is private})
     end
   end
 end