From f52e93ceb161222022c0cf3b67c745521a54dd45 Mon Sep 17 00:00:00 2001 From: Dan Bode Date: Mon, 14 Nov 2011 22:24:01 -0800 Subject: (#10846) add spec tests for ntp class This commit adds some unit tests for the ntp class. Also adds a rakefile for running the spec tests --- spec/classes/ntp_spec.rb | 76 ++++++++++++++++++++++++++++++++++++++++++++++++ spec/spec_helper.rb | 18 ++---------- 2 files changed, 79 insertions(+), 15 deletions(-) create mode 100644 spec/classes/ntp_spec.rb (limited to 'spec') diff --git a/spec/classes/ntp_spec.rb b/spec/classes/ntp_spec.rb new file mode 100644 index 0000000..cae253d --- /dev/null +++ b/spec/classes/ntp_spec.rb @@ -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 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a4aeeae..ab7e2db 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -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 -- cgit v1.2.3