Skip to content

Commit

Permalink
Merge pull request #6 from bodepd/10846_add_unit_tests
Browse files Browse the repository at this point in the history
(#10846) add spec tests for ntp class
  • Loading branch information
kbarber committed Nov 17, 2011
2 parents baae368 + f52e93c commit 05c580b
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 15 deletions.
22 changes: 22 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
require 'rake'
require 'rspec/core/rake_task'

task :default do
sh %{rake -T}
end

# Aliases for spec. The (s) versions are used by rvm specs/tests.
task :test => [:spec]
task :tests => [:spec]
task :specs => [:spec]

desc 'Run all RSpec tests'
RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_opts = ['--color']
end

desc 'Generate code coverage'
RSpec::Core::RakeTask.new(:coverage) do |t|
t.rcov = true
t.rcov_opts = ['--exclude', 'spec']
end
76 changes: 76 additions & 0 deletions spec/classes/ntp_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
#!/usr/bin/env rspec
require 'spec_helper'

describe 'ntp' do

def param_value(subject, type, title, param)
catalogue.resource(type, title).send(:parameters)[param.to_sym]
end

let(:params) { {:servers => 'fake.pool.ntp.org'} }

describe 'test platform specific resources' do

debianish = ['debian', 'ubuntu']
redhatish = ['centos', 'redhat', 'oel', 'linux']

debianish.each do |os|
describe "for operating system #{os}" do

let(:params) {{}}
let(:facts) { { :operatingsystem => os } }

it { should contain_service('ntp').with_name('ntp') }
it 'should use the debian ntp servers by default' do
content = param_value(subject, 'file', '/etc/ntp.conf', 'content')
expected_lines = ['server 0.debian.pool.ntp.org iburst',
'server 1.debian.pool.ntp.org iburst',
'server 2.debian.pool.ntp.org iburst',
'server 3.debian.pool.ntp.org iburst']
(content.split("\n") & expected_lines).should == expected_lines
end
end
end

redhatish.each do |os|
describe "for operating system #{os}" do

let(:params) {{}}
let(:facts) { { :operatingsystem => os } }

it { should contain_service('ntp').with_name('ntpd') }
it 'should use the redhat ntp servers by default' do
content = param_value(subject, 'file', '/etc/ntp.conf', 'content')
expected_lines = [
'server 0.centos.pool.ntp.org',
'server 1.centos.pool.ntp.org',
'server 2.centos.pool.ntp.org']
(content.split("\n") & expected_lines).should == expected_lines
end
end
end

(redhatish + debianish).each do |os|
describe "for operating system #{os}" do

let(:facts) { { :operatingsystem => os } }

it { should contain_file('/etc/ntp.conf').with_owner('0') }
it { should contain_file('/etc/ntp.conf').with_group('0') }
it { should contain_file('/etc/ntp.conf').with_mode('0644') }
it { should contain_package('ntp').with_ensure('present') }
it { should contain_service('ntp').with_ensure('running') }
it { should contain_service('ntp').with_hasstatus(true) }
it { should contain_service('ntp').with_hasrestart(true) }
it 'should allow service ensure to be overridden' do
params[:ensure] = 'stopped'
subject.should contain_service('ntp').with_ensure('stopped')
end
it 'should allow package ensure to be overridden' do
params[:autoupdate] = true
subject.should contain_package('ntp').with_ensure('latest')
end
end
end
end
end
18 changes: 3 additions & 15 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
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
require 'rspec-puppet'

# 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
RSpec.configure do |c|
c.module_path = File.join(File.dirname(__FILE__), '../../')
end

0 comments on commit 05c580b

Please sign in to comment.