From 616b4521f45edacbdaa5f979e4069f74a64d1356 Mon Sep 17 00:00:00 2001
From: Jeff McCune <jeff@puppetlabs.com>
Date: Tue, 27 Nov 2012 16:15:32 -0800
Subject: Add example behaviors for ensure_packages() function

Without this patch the ensure_packages() function has no rspec behavior
examples.  This patch fixes the problem by filling out a spec file with
expected behaviors I could think of.
---
 spec/functions/ensure_packages_spec.rb | 42 ++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 spec/functions/ensure_packages_spec.rb

(limited to 'spec/functions')

diff --git a/spec/functions/ensure_packages_spec.rb b/spec/functions/ensure_packages_spec.rb
new file mode 100644
index 0000000..1c2a328
--- /dev/null
+++ b/spec/functions/ensure_packages_spec.rb
@@ -0,0 +1,42 @@
+#! /usr/bin/env ruby
+
+require 'spec_helper'
+require 'rspec-puppet'
+
+describe 'ensure_packages' do
+  let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
+
+  describe 'argument handling' do
+    it 'fails with no arguments' do
+      should run.with_params().and_raise_error(Puppet::ParseError)
+    end
+    it 'requires an array' do
+      lambda { scope.function_ensure_packages([['foo']]) }.should_not raise_error
+    end
+    it 'fails when given a string' do
+      should run.with_params('foo').and_raise_error(Puppet::ParseError)
+    end
+  end
+
+  context 'given a catalog containing Package[puppet]{ensure => absent}' do
+    let :pre_condition do
+      'package { puppet: ensure => absent }'
+    end
+
+    # NOTE: should run.with_params has the side effect of making the compiler
+    # available to the test harness.
+    it 'has no effect on Package[puppet]' do
+      should run.with_params(['puppet'])
+      rsrc = compiler.catalog.resource('Package[puppet]')
+      rsrc.to_hash.should == {:ensure => "absent"}
+    end
+  end
+
+  context 'given a clean catalog' do
+    it 'declares package resources with ensure => present' do
+      should run.with_params(['facter'])
+      rsrc = compiler.catalog.resource('Package[facter]')
+      rsrc.to_hash.should == {:name => "facter", :ensure => "present"}
+    end
+  end
+end
-- 
cgit v1.2.3