diff options
-rw-r--r-- | .rspec | 2 | ||||
-rwxr-xr-x | Gemfile | 1 | ||||
-rw-r--r-- | spec/defines/samba__server__share_spec.rb | 103 | ||||
-rw-r--r-- | spec/spec.opts | 6 | ||||
-rw-r--r-- | spec/spec_helper.rb | 3 |
5 files changed, 115 insertions, 0 deletions
@@ -0,0 +1,2 @@ +--format documentation +--color @@ -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 |