]> gitweb.fluxo.info Git - puppet-samba.git/commitdiff
Initial tests for samba::share
authorPete Brown <pete@abstractit.com.au>
Tue, 5 Jul 2016 14:03:45 +0000 (00:03 +1000)
committerPete Brown <pete@abstractit.com.au>
Tue, 5 Jul 2016 14:03:45 +0000 (00:03 +1000)
.rspec [new file with mode: 0644]
Gemfile
spec/defines/samba__server__share_spec.rb [new file with mode: 0644]
spec/spec.opts [new file with mode: 0644]
spec/spec_helper.rb

diff --git a/.rspec b/.rspec
new file mode 100644 (file)
index 0000000..8c18f1a
--- /dev/null
+++ b/.rspec
@@ -0,0 +1,2 @@
+--format documentation
+--color
diff --git a/Gemfile b/Gemfile
index f90407be887993bb15260bf9cb31b0fc08de2ad2..598a68fbed726c896b6d7b1da7295f49c055628a 100755 (executable)
--- 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 (file)
index 0000000..e6b24b8
--- /dev/null
@@ -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 (file)
index 0000000..91cd642
--- /dev/null
@@ -0,0 +1,6 @@
+--format
+s
+--colour
+--loadby
+mtime
+--backtrace
index 81f98acd8602b7b233d687b74cef12fa28b22ad6..ee1066928d1600988709d422e6de5d1577e67252 100644 (file)
@@ -1,4 +1,7 @@
 require 'puppetlabs_spec_helper/module_spec_helper'
+require 'rspec-puppet-facts'
+
+include RspecPuppetFacts
 
 RSpec.configure do |c|
   c.before do