From f14ab8a15c76c72c2a8cb92cdd8d79bae613e6ca Mon Sep 17 00:00:00 2001 From: Jonathan Thurman Date: Wed, 14 Nov 2012 11:43:57 -0800 Subject: Create spec tests for all classes/defines and perform most cleanup recommended by puppet-lint --- .fixtures.yml | 3 + Rakefile | 6 ++ manifests/client.pp | 22 ++++++ manifests/config.pp | 38 ++++++--- manifests/database.pp | 28 ++++++- manifests/imfile.pp | 23 ++++++ manifests/init.pp | 16 +++- manifests/install.pp | 14 +++- manifests/params.pp | 12 +++ manifests/server.pp | 43 +++++++--- manifests/service.pp | 16 +++- manifests/snippet.pp | 17 ++++ spec/classes/rsyslog_client_spec.rb | 51 ++++++++++++ spec/classes/rsyslog_config_spec.rb | 54 +++++++++++++ spec/classes/rsyslog_database_spec.rb | 145 ++++++++++++++++++++++++++++++++++ spec/classes/rsyslog_install_spec.rb | 54 +++++++++++++ spec/classes/rsyslog_server_spec.rb | 51 ++++++++++++ spec/classes/rsyslog_service_spec.rb | 51 ++++++++++++ spec/classes/rsyslog_spec.rb | 57 +++++++++++++ spec/defines/rsyslog_imfile_spec.rb | 75 ++++++++++++++++++ spec/defines/rsyslog_snippet_spec.rb | 69 ++++++++++++++++ spec/fixtures/.gitignore | 2 + spec/spec_helper.rb | 19 +---- 23 files changed, 818 insertions(+), 48 deletions(-) create mode 100644 .fixtures.yml create mode 100644 Rakefile create mode 100644 spec/classes/rsyslog_client_spec.rb create mode 100644 spec/classes/rsyslog_config_spec.rb create mode 100644 spec/classes/rsyslog_database_spec.rb create mode 100644 spec/classes/rsyslog_install_spec.rb create mode 100644 spec/classes/rsyslog_server_spec.rb create mode 100644 spec/classes/rsyslog_service_spec.rb create mode 100644 spec/classes/rsyslog_spec.rb create mode 100644 spec/defines/rsyslog_imfile_spec.rb create mode 100644 spec/defines/rsyslog_snippet_spec.rb create mode 100644 spec/fixtures/.gitignore diff --git a/.fixtures.yml b/.fixtures.yml new file mode 100644 index 0000000..b1fb3e0 --- /dev/null +++ b/.fixtures.yml @@ -0,0 +1,3 @@ +fixtures: + symlinks: + "rsyslog": "#{source_dir}" diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..469b83c --- /dev/null +++ b/Rakefile @@ -0,0 +1,6 @@ +require 'puppetlabs_spec_helper/rake_tasks' + +# Enable puppet-lint for all manifests: rake lint +require 'puppet-lint/tasks/puppet-lint' +PuppetLint.configuration.send("disable_80chars") # no warnings on lines over 80 chars. +PuppetLint.configuration.ignore_paths = ["spec/fixtures/**/*.pp"] diff --git a/manifests/client.pp b/manifests/client.pp index fd76f1e..74f839a 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -1,3 +1,25 @@ +# == Class: rsyslog::client +# +# Full description of class role here. +# +# === Parameters +# +# [*sample_parameter*] +# [*log_remote*] +# [*spool_size*] +# [*remote_type*] +# [*log_local*] +# [*log_auth_local*] +# [*custom_config*] +# [*server*] +# [*port*] +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::client': } +# class rsyslog::client ( $log_remote = true, $spool_size = '1g', diff --git a/manifests/config.pp b/manifests/config.pp index aa06535..cbafe61 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -1,37 +1,49 @@ -class rsyslog::config { +# == Class: rsyslog::config +# +# Full description of class role here. +# +# === Parameters +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::config': } +# +class rsyslog::config inherits rsyslog::params { file { $rsyslog::params::rsyslog_d: + ensure => directory, owner => root, group => $rsyslog::params::run_group, purge => true, recurse => true, force => true, - require => Class["rsyslog::install"], - ensure => directory, + require => Class['rsyslog::install'], } file { $rsyslog::params::rsyslog_conf: + ensure => file, owner => root, group => $rsyslog::params::run_group, - ensure => file, content => template("${module_name}/rsyslog.conf.erb"), - require => Class["rsyslog::install"], - notify => Class["rsyslog::service"], + require => Class['rsyslog::install'], + notify => Class['rsyslog::service'], } file { $rsyslog::params::rsyslog_default: + ensure => file, owner => root, group => $rsyslog::params::run_group, - ensure => file, - source => "puppet:///modules/rsyslog/rsyslog_default", - require => Class["rsyslog::install"], - notify => Class["rsyslog::service"], + source => 'puppet:///modules/rsyslog/rsyslog_default', + require => Class['rsyslog::install'], + notify => Class['rsyslog::service'], } file { $rsyslog::params::spool_dir: + ensure => directory, owner => root, group => $rsyslog::params::run_group, - ensure => directory, - require => Class["rsyslog::install"], - notify => Class["rsyslog::service"], + require => Class['rsyslog::install'], + notify => Class['rsyslog::service'], } } diff --git a/manifests/database.pp b/manifests/database.pp index 183c870..c0112be 100644 --- a/manifests/database.pp +++ b/manifests/database.pp @@ -1,3 +1,27 @@ +# == Class: rsyslog::database +# +# Full description of class role here. +# +# === Parameters +# +# [*backend*] - Which backend server to use (mysql|pgsql) +# [*server*] - Server hostname +# [*database*] - Database name +# [*username*] - Database username +# [*password*] - Database password +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::database': +# backend => 'mysql', +# server => 'localhost', +# database => 'mydb', +# username => 'myuser', +# password => 'mypass', +# } +# class rsyslog::database ( $backend, $server, @@ -8,13 +32,13 @@ class rsyslog::database ( $db_module = "om${backend}" $db_conf = "${rsyslog::params::rsyslog_d}${backend}.conf" - + case $backend { mysql: { $db_package = $rsyslog::params::mysql_package_name } pgsql: { $db_package = $rsyslog::params::pgsql_package_name } default: { fail("Unsupported backend: ${backend}. Only MySQL (mysql) and PostgreSQL (pgsql) are supported.") } } - + package { $db_package: ensure => $rsyslog::params::package_status, before => File[$db_conf], diff --git a/manifests/imfile.pp b/manifests/imfile.pp index 64e6e2f..58554a4 100644 --- a/manifests/imfile.pp +++ b/manifests/imfile.pp @@ -1,3 +1,26 @@ +# == Define: rsyslog::imfile +# +# Full description of class role here. +# +# === Parameters +# +# [*file_name*] +# [*file_tag*] +# [*file_facility*] +# [*polling_interval*] +# [*file_severity*] +# [*run_file_monitor*] +# +# === Variables +# +# === Examples +# +# rsyslog::imfile { 'my-imfile': +# file_name => '/some/file', +# file_tag => 'mytag', +# file_facility => 'myfacility', +# } +# define rsyslog::imfile( $file_name, $file_tag, diff --git a/manifests/init.pp b/manifests/init.pp index 80db400..2f9b015 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,3 +1,17 @@ +# == Class: rsyslog +# +# Meta class to install rsyslog with a basic configuration. You probably want rsyslog::client or rsyslog::server +# +# === Parameters +# +# === Variables +# +# === Examples +# +# class { 'rsyslog': } +# class rsyslog { - include rsyslog::params, rsyslog::install, rsyslog::config, rsyslog::service + class { 'rsyslog::install': } + class { 'rsyslog::config': } + class { 'rsyslog::service': } } diff --git a/manifests/install.pp b/manifests/install.pp index e0601bd..d2cdcb6 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -1,4 +1,16 @@ -class rsyslog::install { +# == Class: rsyslog::install +# +# This class makes sure that the required packages are installed +# +# === Parameters +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::install': } +# +class rsyslog::install inherits rsyslog::params { package { $rsyslog::params::rsyslog_package_name: ensure => $rsyslog::params::package_status, } diff --git a/manifests/params.pp b/manifests/params.pp index 96c0b27..d5c48b2 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,3 +1,15 @@ +# == Class: rsyslog::params +# +# This defines default configuration values for rsyslog. You don't want to use it directly. +# +# === Parameters +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::params': } +# class rsyslog::params { case $::osfamily { debian: { diff --git a/manifests/server.pp b/manifests/server.pp index acdc7db..70c22c9 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -1,3 +1,22 @@ +# == Class: rsyslog::server +# +# This class configures rsyslog for a server role. +# +# === Parameters +# +# [*enable_tcp*] +# [*enable_udp*] +# [*enable_onfile*] +# [*server_dir*] +# [*custom_config*] +# [*high_precision_timestamps*] +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::server': } +# class rsyslog::server ( $enable_tcp = true, $enable_udp = true, @@ -7,15 +26,17 @@ class rsyslog::server ( $high_precision_timestamps = false ) inherits rsyslog { - file { $rsyslog::params::server_conf: - ensure => present, - owner => root, - group => $rsyslog::params::run_group, - content => $custom_config ? { - '' => template("${module_name}/server.conf.erb"), - default => template($custom_config), - }, - require => Class['rsyslog::config'], - notify => Class['rsyslog::service'], - } + $real_content = $custom_config ? { + '' => template("${module_name}/server.conf.erb"), + default => template($custom_config), + } + + file { $rsyslog::params::server_conf: + ensure => present, + owner => root, + group => $rsyslog::params::run_group, + content => $real_content, + require => Class['rsyslog::config'], + notify => Class['rsyslog::service'], + } } diff --git a/manifests/service.pp b/manifests/service.pp index 66c03dc..94bd603 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -1,7 +1,19 @@ -class rsyslog::service { +# == Class: rsyslog::service +# +# This class enforces running of the rsyslog service. +# +# === Parameters +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::service': } +# +class rsyslog::service inherits rsyslog::params { service { $rsyslog::params::service_name: ensure => running, enable => true, - require => Class["rsyslog::config"], + require => Class['rsyslog::config'], } } diff --git a/manifests/snippet.pp b/manifests/snippet.pp index d59a829..38e71d4 100644 --- a/manifests/snippet.pp +++ b/manifests/snippet.pp @@ -1,3 +1,20 @@ +# == Define: rsyslog::snippet +# +# This class allows for you to create a rsyslog configuration file with whatever content you pass in. +# +# === Parameters +# +# [*content*] - The actual content to place in the file. +# [*ensure*] - How to enforce the file (default: present) +# +# === Variables +# +# === Examples +# +# rsyslog::snippet { 'my-rsyslog-config': +# content => '', +# } +# define rsyslog::snippet( $content, $ensure = 'present' diff --git a/spec/classes/rsyslog_client_spec.rb b/spec/classes/rsyslog_client_spec.rb new file mode 100644 index 0000000..bdfccbf --- /dev/null +++ b/spec/classes/rsyslog_client_spec.rb @@ -0,0 +1,51 @@ +require 'spec_helper' + +describe 'rsyslog::client', :type => :class do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/client.conf') + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/client.conf') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.d/client.conf') + end + end + end +end diff --git a/spec/classes/rsyslog_config_spec.rb b/spec/classes/rsyslog_config_spec.rb new file mode 100644 index 0000000..640da2d --- /dev/null +++ b/spec/classes/rsyslog_config_spec.rb @@ -0,0 +1,54 @@ +require 'spec_helper' + +describe 'rsyslog::config', :type => :class do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.conf') + should contain_file('/etc/rsyslog.d/') + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.conf') + should contain_file('/etc/rsyslog.d/') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.conf') + should contain_file('/etc/syslog.d/') + end + end + end +end diff --git a/spec/classes/rsyslog_database_spec.rb b/spec/classes/rsyslog_database_spec.rb new file mode 100644 index 0000000..982ccde --- /dev/null +++ b/spec/classes/rsyslog_database_spec.rb @@ -0,0 +1,145 @@ +require 'spec_helper' + +describe 'rsyslog::database', :type => :class do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + context "default usage mysql (osfamily = RedHat)" do + let(:title) { 'rsyslog-database-mysql' } + + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('rsyslog-mysql') + should contain_file('/etc/rsyslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = RedHat)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('rsyslog-pgsql') + should contain_file('/etc/rsyslog.d/pgsql.conf') + end + end + end + + + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + context "default usage mysql (osfamily = Debian)" do + let(:title) { 'rsyslog-database-mysql' } + + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('rsyslog-mysql') + should contain_file('/etc/rsyslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = Debian)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('rsyslog-pgsql') + should contain_file('/etc/rsyslog.d/pgsql.conf') + end + end + end + + + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + context "default usage mysql (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-database-mysql' } + + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('sysutils/rsyslog5-mysql') + should contain_file('/etc/syslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('sysutils/rsyslog5-pgsql') + should contain_file('/etc/syslog.d/pgsql.conf') + end + end + end +end diff --git a/spec/classes/rsyslog_install_spec.rb b/spec/classes/rsyslog_install_spec.rb new file mode 100644 index 0000000..a1baea3 --- /dev/null +++ b/spec/classes/rsyslog_install_spec.rb @@ -0,0 +1,54 @@ +require 'spec_helper' + +describe 'rsyslog::install', :type => :class do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('rsyslog') + should contain_package('rsyslog-relp') + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('rsyslog') + should contain_package('rsyslog-relp') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('sysutils/rsyslog5') + should contain_package('sysutils/rsyslog5-relp') + end + end + end +end diff --git a/spec/classes/rsyslog_server_spec.rb b/spec/classes/rsyslog_server_spec.rb new file mode 100644 index 0000000..4f8bb62 --- /dev/null +++ b/spec/classes/rsyslog_server_spec.rb @@ -0,0 +1,51 @@ +require 'spec_helper' + +describe 'rsyslog::server', :type => :class do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-server-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/server.conf') + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-server-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/server.conf') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-server-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.d/server.conf') + end + end + end +end diff --git a/spec/classes/rsyslog_service_spec.rb b/spec/classes/rsyslog_service_spec.rb new file mode 100644 index 0000000..411f8c1 --- /dev/null +++ b/spec/classes/rsyslog_service_spec.rb @@ -0,0 +1,51 @@ +require 'spec_helper' + +describe 'rsyslog::service', :type => :class do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('rsyslog') + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('rsyslog') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('syslogd') + end + end + end +end diff --git a/spec/classes/rsyslog_spec.rb b/spec/classes/rsyslog_spec.rb new file mode 100644 index 0000000..d6a6bf7 --- /dev/null +++ b/spec/classes/rsyslog_spec.rb @@ -0,0 +1,57 @@ +require 'spec_helper' + +describe 'rsyslog', :type => :class do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + context "default usage (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end + end + end +end diff --git a/spec/defines/rsyslog_imfile_spec.rb b/spec/defines/rsyslog_imfile_spec.rb new file mode 100644 index 0000000..82c8312 --- /dev/null +++ b/spec/defines/rsyslog_imfile_spec.rb @@ -0,0 +1,75 @@ +require 'spec_helper' + +describe 'rsyslog::imfile', :type => :define do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } + } + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-imfile-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } + } + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-imfile-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } + } + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-imfile-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.d/rsyslog-imfile-basic.conf') + end + end + end +end diff --git a/spec/defines/rsyslog_snippet_spec.rb b/spec/defines/rsyslog_snippet_spec.rb new file mode 100644 index 0000000..b279cce --- /dev/null +++ b/spec/defines/rsyslog_snippet_spec.rb @@ -0,0 +1,69 @@ +require 'spec_helper' + +describe 'rsyslog::snippet', :type => :define do + context "osfamily = RedHat" do + let :facts do + { + :osfamily => 'RedHat', + } + end + + let (:params) { + { + 'content' => 'Random Content', + } + } + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-snippet-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("Random Content\n") + end + end + end + + context "osfamily = Debian" do + let :facts do + { + :osfamily => 'Debian', + } + end + + let (:params) { + { + 'content' => 'Random Content', + } + } + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-snippet-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("Random Content\n") + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + { + :osfamily => 'freebsd', + } + end + + let (:params) { + { + 'content' => 'Random Content', + } + } + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-snippet-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.d/rsyslog-snippet-basic.conf').with_content("Random Content\n") + end + end + end +end diff --git a/spec/fixtures/.gitignore b/spec/fixtures/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/spec/fixtures/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a4aeeae..2c6f566 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,18 +1 @@ -require 'pathname' -dir = Pathname.new(__FILE__).parent -$LOAD_PATH.unshift(dir, dir + 'lib', dir + '../lib') - -require 'mocha' -require 'puppet' -gem 'rspec', '=1.2.9' -require 'spec/autorun' - -Spec::Runner.configure do |config| - config.mock_with :mocha -end - -# We need this because the RAL uses 'should' as a method. This -# allows us the same behaviour but with a different method name. -class Object - alias :must :should -end +require 'puppetlabs_spec_helper/module_spec_helper' -- cgit v1.2.3