From 109024fd916b67aebf983427bde8b8761a8d2a97 Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Sat, 11 Apr 2015 16:42:26 -0400 Subject: first set of specs --- .fixtures.yml | 4 +++ spec/classes/samba__server__config_spec.rb | 10 ++++++++ spec/classes/samba__server__install_spec.rb | 9 +++++++ spec/classes/samba__server__service_spec.rb | 40 +++++++++++++++++++++++++++++ spec/classes/samba__server_spec.rb | 9 +++++++ spec/fixtures/manifests/init.pp | 7 +++++ spec/spec_helper.rb | 8 ++++++ tests/init.pp | 25 ++++++++++++++++++ 8 files changed, 112 insertions(+) create mode 100644 .fixtures.yml create mode 100644 spec/classes/samba__server__config_spec.rb create mode 100644 spec/classes/samba__server__install_spec.rb create mode 100644 spec/classes/samba__server__service_spec.rb create mode 100644 spec/classes/samba__server_spec.rb create mode 100644 spec/fixtures/manifests/init.pp create mode 100644 spec/spec_helper.rb create mode 100644 tests/init.pp diff --git a/.fixtures.yml b/.fixtures.yml new file mode 100644 index 0000000..112077f --- /dev/null +++ b/.fixtures.yml @@ -0,0 +1,4 @@ +fixtures: + repositories: + symlinks: + samba: "#{source_dir}" diff --git a/spec/classes/samba__server__config_spec.rb b/spec/classes/samba__server__config_spec.rb new file mode 100644 index 0000000..5f13aa4 --- /dev/null +++ b/spec/classes/samba__server__config_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' + +describe 'samba::server::config', :type => :class do + context "on a Debian OS" do + let( :facts ) { { :osfamily => 'Debian' } } + + it { should contain_file('/etc/samba/smb.conf').with_owner('root') } + end +end + diff --git a/spec/classes/samba__server__install_spec.rb b/spec/classes/samba__server__install_spec.rb new file mode 100644 index 0000000..9764687 --- /dev/null +++ b/spec/classes/samba__server__install_spec.rb @@ -0,0 +1,9 @@ +require 'spec_helper' + +describe 'samba::server::install', :type => :class do + context "on a Debian OS" do + let(:facts) {{ :osfamily => 'Debian' }} + it { should contain_package('samba') } + end +end + diff --git a/spec/classes/samba__server__service_spec.rb b/spec/classes/samba__server__service_spec.rb new file mode 100644 index 0000000..bc28a9b --- /dev/null +++ b/spec/classes/samba__server__service_spec.rb @@ -0,0 +1,40 @@ +require 'spec_helper' + +describe 'samba::server::service' do + context 'on a Debian os family' do + let(:facts) {{ :osfamily => 'Debian' }} + + it { should contain_service('samba') + .with_require('Class[Samba::Server::Config]') } + + context 'Debian' do + let(:facts) {{ :osfamily => 'Debian', :operatingsystem => 'Debian' }} + it { should contain_service('samba') } + end + + context 'Ubuntu' do + let(:facts) {{ :osfamily => 'Debian', :operatingsystem => 'Ubuntu' }} + it { should contain_service('smbd') } + end + end + + context 'on a Redhat os family' do + let(:facts) {{ :osfamily => 'Redhat' }} + it { should contain_service('smb') } + end + + context 'on a Archlinux os family' do + let(:facts) {{ :osfamily => 'Archlinux' }} + it { should contain_service('smbd') } + end + + context 'on a Gentoo os family' do + let(:facts) {{ :osfamily => 'Linux', :operatingsystem => 'Gentoo' }} + it { should contain_service('samba') } + end + + context 'on an unsupported OS' do + let(:facts) {{ :osfamily => 'Solaris' }} + it { should raise_error(/Solaris is not supported by this module./) } + end +end diff --git a/spec/classes/samba__server_spec.rb b/spec/classes/samba__server_spec.rb new file mode 100644 index 0000000..89d994f --- /dev/null +++ b/spec/classes/samba__server_spec.rb @@ -0,0 +1,9 @@ +require 'spec_helper' + +describe 'samba::server' do + let(:facts) {{ :osfamily => 'Debian' }} + + it { should contain_class('samba::server::install') } + it { should contain_class('samba::server::config') } + it { should contain_class('samba::server::service') } +end diff --git a/spec/fixtures/manifests/init.pp b/spec/fixtures/manifests/init.pp new file mode 100644 index 0000000..0f64360 --- /dev/null +++ b/spec/fixtures/manifests/init.pp @@ -0,0 +1,7 @@ +node 'testhost.example.com' { + + include samba::server + +} + +node default {} diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..81f98ac --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,8 @@ +require 'puppetlabs_spec_helper/module_spec_helper' + +RSpec.configure do |c| + c.before do + # avoid "Only root can execute commands as other users" + Puppet.features.stubs(:root? => true) + end +end diff --git a/tests/init.pp b/tests/init.pp new file mode 100644 index 0000000..142ba4e --- /dev/null +++ b/tests/init.pp @@ -0,0 +1,25 @@ +# Smoketest. + +class {'samba::server': + workgroup => 'example', + server_string => "Example Samba Server", + interfaces => "eth0 lo", + security => 'share' + } + + samba::server::share {'example-share': + comment => 'Example Share', + path => '/path/to/share', + guest_only => true, + guest_ok => true, + guest_account => "guest", + browsable => false, + create_mask => 0777, + force_create_mask => 0777, + directory_mask => 0777, + force_directory_mask => 0777, + force_group => 'group', + force_user => 'user', + copy => 'some-other-share', + } +} -- cgit v1.2.3