]> gitweb.fluxo.info Git - puppet-samba.git/commitdiff
first set of specs
authorAdam Jahn <ajjahn@gmail.com>
Sat, 11 Apr 2015 20:42:26 +0000 (16:42 -0400)
committerAdam Jahn <ajjahn@gmail.com>
Sat, 11 Apr 2015 20:42:26 +0000 (16:42 -0400)
.fixtures.yml [new file with mode: 0644]
spec/classes/samba__server__config_spec.rb [new file with mode: 0644]
spec/classes/samba__server__install_spec.rb [new file with mode: 0644]
spec/classes/samba__server__service_spec.rb [new file with mode: 0644]
spec/classes/samba__server_spec.rb [new file with mode: 0644]
spec/fixtures/manifests/init.pp [new file with mode: 0644]
spec/spec_helper.rb [new file with mode: 0644]
tests/init.pp [new file with mode: 0644]

diff --git a/.fixtures.yml b/.fixtures.yml
new file mode 100644 (file)
index 0000000..112077f
--- /dev/null
@@ -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 (file)
index 0000000..5f13aa4
--- /dev/null
@@ -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 (file)
index 0000000..9764687
--- /dev/null
@@ -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 (file)
index 0000000..bc28a9b
--- /dev/null
@@ -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 (file)
index 0000000..89d994f
--- /dev/null
@@ -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 (file)
index 0000000..0f64360
--- /dev/null
@@ -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 (file)
index 0000000..81f98ac
--- /dev/null
@@ -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 (file)
index 0000000..142ba4e
--- /dev/null
@@ -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',
+  }
+}