aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.rspec2
-rwxr-xr-xGemfile1
-rw-r--r--spec/defines/samba__server__share_spec.rb103
-rw-r--r--spec/spec.opts6
-rw-r--r--spec/spec_helper.rb3
5 files changed, 115 insertions, 0 deletions
diff --git a/.rspec b/.rspec
new file mode 100644
index 0000000..8c18f1a
--- /dev/null
+++ b/.rspec
@@ -0,0 +1,2 @@
+--format documentation
+--color
diff --git a/Gemfile b/Gemfile
index f90407b..598a68f 100755
--- a/Gemfile
+++ b/Gemfile
@@ -24,4 +24,5 @@ group :test do
gem "puppet-syntax"
gem "puppetlabs_spec_helper"
+ gem 'rspec-puppet-facts'
end
diff --git a/spec/defines/samba__server__share_spec.rb b/spec/defines/samba__server__share_spec.rb
new file mode 100644
index 0000000..e6b24b8
--- /dev/null
+++ b/spec/defines/samba__server__share_spec.rb
@@ -0,0 +1,103 @@
+require 'spec_helper'
+
+describe 'samba::server::share', :type => :define do
+ let(:pre_condition){ 'class{"samba::server":}'}
+ on_supported_os.each do |os, facts|
+ context "When on an #{os} system" do
+ let(:facts) do
+ facts.merge({
+ :concat_basedir => '/tmp',
+ :domain => 'domain.com'
+ })
+ end
+
+ context 'when called with base options' do
+ let(:title) { 'test_share' }
+ let(:params) {{
+ :ensure => 'present'
+ }}
+
+ it { is_expected.to contain_samba__server__share('test_share') }
+ it { is_expected.to contain_augeas('test_share-section').with(
+ :incl => '/etc/samba/smb.conf',
+ :lens => 'Samba.lns',
+ :context => '/files/etc/samba/smb.conf',
+ :changes => ["set target[. = 'test_share'] 'test_share'"]
+ ).that_requires('Class[Samba::Server::Config]'
+ ).that_notifies('Class[Samba::Server::Service]')
+ }
+ it { is_expected.to contain_augeas('test_share-changes').with(
+ :incl => '/etc/samba/smb.conf',
+ :lens => 'Samba.lns',
+ :context => '/files/etc/samba/smb.conf',
+ ).that_requires('Class[Samba::Server::Config]'
+ ).that_notifies('Class[Samba::Server::Service]')
+ }
+ end#no params
+
+ context 'when called with ensure set to absent' do
+ let(:title) { 'test_share' }
+ let(:params) {{
+ :ensure => 'absent'
+ }}
+
+ it 'should not contain the share' do
+ skip 'this is not working'
+ should_not contain_samba__server__share('test_share')
+ end
+ end#no params
+
+ context 'when called with available set to true' do
+ let(:title) { 'test_share' }
+ let(:params) {{
+ :ensure => 'present',
+ :available => true,
+ }}
+ it { is_expected.to contain_samba__server__share('test_share') }
+ it { is_expected.to contain_augeas('test_share-section').with(
+ :incl => '/etc/samba/smb.conf',
+ :lens => 'Samba.lns',
+ :context => '/files/etc/samba/smb.conf',
+ :changes => ["set target[. = 'test_share'] 'test_share'"]
+ ).that_requires('Class[Samba::Server::Config]'
+ ).that_notifies('Class[Samba::Server::Service]')
+ }
+ it { is_expected.to contain_augeas('test_share-changes').with(
+ :incl => '/etc/samba/smb.conf',
+ :lens => 'Samba.lns',
+ :context => '/files/etc/samba/smb.conf',
+ :changes => ["set \"target[. = 'test_share']/available\" yes"]
+ ).that_requires('Class[Samba::Server::Config]'
+ ).that_notifies('Class[Samba::Server::Service]')
+ }
+ end#no params
+
+ context 'when called with root_preexec set to something' do
+ let(:title) { 'test_share' }
+ let(:params) {{
+ :ensure => 'present',
+ :root_preexec => '/bin/true',
+ }}
+ it { is_expected.to contain_samba__server__share('test_share') }
+ it { is_expected.to contain_augeas('test_share-section').with(
+ :incl => '/etc/samba/smb.conf',
+ :lens => 'Samba.lns',
+ :context => '/files/etc/samba/smb.conf',
+ :changes => ["set target[. = 'test_share'] 'test_share'"]
+ ).that_requires('Class[Samba::Server::Config]'
+ ).that_notifies('Class[Samba::Server::Service]')
+ }
+ it { is_expected.to contain_augeas('test_share-changes').with(
+ :incl => '/etc/samba/smb.conf',
+ :lens => 'Samba.lns',
+ :context => '/files/etc/samba/smb.conf',
+ :changes => ["set \"target[. = 'test_share']/root_preexec\" /bin/true"]
+ ).that_requires('Class[Samba::Server::Config]'
+ ).that_notifies('Class[Samba::Server::Service]')
+ }
+ end#no params
+
+ end
+ end
+end
+
diff --git a/spec/spec.opts b/spec/spec.opts
new file mode 100644
index 0000000..91cd642
--- /dev/null
+++ b/spec/spec.opts
@@ -0,0 +1,6 @@
+--format
+s
+--colour
+--loadby
+mtime
+--backtrace
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 81f98ac..ee10669 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,4 +1,7 @@
require 'puppetlabs_spec_helper/module_spec_helper'
+require 'rspec-puppet-facts'
+
+include RspecPuppetFacts
RSpec.configure do |c|
c.before do