Skip to content

Commit 9627d01

Browse files
committed
Merge pull request #49 from bodepd/test_coverage
Add more spec test coverage
2 parents 9779208 + 55e399d commit 9627d01

File tree

4 files changed

+202
-20
lines changed

4 files changed

+202
-20
lines changed

spec/classes/mysql_init_spec.rb

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,46 @@
11
require 'spec_helper'
22

33
describe 'mysql' do
4-
let :facts do
5-
{ :osfamily => 'Debian'}
4+
5+
describe 'on a debian based os' do
6+
let :facts do
7+
{ :osfamily => 'Debian'}
8+
end
9+
it { should contain_package('mysql_client').with(
10+
:name => 'mysql-client',
11+
:ensure => 'present'
12+
)}
13+
end
14+
15+
describe 'on a redhat based os' do
16+
let :facts do
17+
{:osfamily => 'Redhat'}
18+
end
19+
it { should contain_package('mysql_client').with(
20+
:name => 'mysql',
21+
:ensure => 'present'
22+
)}
23+
describe 'when parameters are supplied' do
24+
let :params do
25+
{:package_ensure => 'latest', :package_name => 'mysql_client'}
26+
end
27+
it { should contain_package('mysql_client').with(
28+
:name => 'mysql_client',
29+
:ensure => 'latest'
30+
)}
31+
end
32+
end
33+
34+
describe 'on any other os' do
35+
let :facts do
36+
{:osfamily => 'foo'}
37+
end
38+
39+
it 'should fail' do
40+
expect do
41+
subject
42+
end.should raise_error(/Unsupported osfamily: foo/)
43+
end
644
end
745

8-
it { should contain_class 'mysql' }
946
end

spec/classes/mysql_python_spec.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
require 'spec_helper'
2+
3+
describe 'mysql::python' do
4+
5+
describe 'on a debian based os' do
6+
let :facts do
7+
{ :osfamily => 'Debian'}
8+
end
9+
it { should contain_package('python-mysqldb').with(
10+
:name => 'python-mysqldb',
11+
:ensure => 'present'
12+
)}
13+
end
14+
15+
describe 'on a redhat based os' do
16+
let :facts do
17+
{:osfamily => 'Redhat'}
18+
end
19+
it { should contain_package('python-mysqldb').with(
20+
:name => 'MySQL-python',
21+
:ensure => 'present'
22+
)}
23+
describe 'when parameters are supplied' do
24+
let :params do
25+
{:package_ensure => 'latest', :package_name => 'python-mysql'}
26+
end
27+
it { should contain_package('python-mysqldb').with(
28+
:name => 'python-mysql',
29+
:ensure => 'latest'
30+
)}
31+
end
32+
end
33+
34+
describe 'on any other os' do
35+
let :facts do
36+
{:osfamily => 'foo'}
37+
end
38+
39+
it 'should fail' do
40+
expect do
41+
subject
42+
end.should raise_error(/Unsupported osfamily: foo/)
43+
end
44+
end
45+
46+
end

spec/classes/mysql_ruby_spec.rb

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
require 'spec_helper'
2+
3+
describe 'mysql::ruby' do
4+
5+
describe 'on a debian based os' do
6+
let :facts do
7+
{ :osfamily => 'Debian'}
8+
end
9+
it { should contain_package('ruby_mysql').with(
10+
:name => 'libmysql-ruby',
11+
:ensure => 'present',
12+
# TODO is this what we want? does this actually work
13+
# if the provider is blank
14+
:provider => ''
15+
)}
16+
end
17+
18+
describe 'on a redhat based os' do
19+
let :facts do
20+
{:osfamily => 'Redhat'}
21+
end
22+
it { should contain_package('ruby_mysql').with(
23+
:name => 'ruby-mysql',
24+
:ensure => 'present',
25+
:provider => 'gem'
26+
)}
27+
describe 'when parameters are supplied' do
28+
let :params do
29+
{:package_ensure => 'latest',
30+
:package_provider => 'zypper',
31+
:package_name => 'mysql_ruby'}
32+
end
33+
it { should contain_package('ruby_mysql').with(
34+
:name => 'mysql_ruby',
35+
:ensure => 'latest',
36+
:provider => 'zypper'
37+
)}
38+
end
39+
end
40+
41+
describe 'on any other os' do
42+
let :facts do
43+
{:osfamily => 'foo'}
44+
end
45+
46+
it 'should fail' do
47+
expect do
48+
subject
49+
end.should raise_error(/Unsupported osfamily: foo/)
50+
end
51+
end
52+
53+
end

spec/classes/mysql_server_spec.rb

Lines changed: 63 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,68 @@
11
require 'spec_helper'
2-
32
describe 'mysql::server' do
4-
let (:facts) do
5-
{ :osfamily => 'Debian' }
3+
4+
let :constant_parameter_defaults do
5+
{:config_hash => {},
6+
:package_ensure => 'present',
7+
:package_name => 'mysql-server'
8+
}
69
end
710

8-
it { should contain_package('mysql-server').with_ensure('present') }
9-
it do should contain_service('mysqld').with(
10-
'name' => 'mysql',
11-
'ensure' => 'running',
12-
'enable' => 'true'
13-
) end
14-
15-
it { should contain_class 'mysql::config' }
16-
it do should contain_exec('mysqld-restart').with(
17-
'command' => 'service mysql restart',
18-
'logoutput' => 'on_failure',
19-
'path' => '/sbin/:/usr/sbin/:/usr/bin/:/bin/',
20-
'refreshonly' => 'true'
21-
) end
11+
describe 'with osfamily specific defaults' do
12+
{
13+
'Debian' => {
14+
:service_name => 'mysql'
15+
},
16+
'Redhat' => {
17+
:service_name => 'mysqld'
18+
}
19+
}.each do |osfamily, osparams|
20+
21+
describe "when osfamily is #{osfamily}" do
22+
23+
let :facts do
24+
{:osfamily => osfamily}
25+
end
26+
27+
[
28+
{},
29+
{
30+
:package_name => 'dans_package',
31+
:package_ensure => 'latest',
32+
:service_name => 'dans_service',
33+
:config_hash => {'root_password' => 'foo'}
34+
}
35+
].each do |passed_params|
36+
37+
describe "with #{passed_params == {} ? 'default' : 'specified'} parameters" do
38+
39+
let :parameter_defaults do
40+
constant_parameter_defaults.merge(osparams)
41+
end
42+
43+
44+
let :params do
45+
passed_params
46+
end
47+
48+
let :param_values do
49+
parameter_defaults.merge(params)
50+
end
51+
52+
it { should contain_package('mysql-server').with(
53+
:name => param_values[:package_name],
54+
:ensure => param_values[:package_ensure]
55+
)}
56+
57+
it { should contain_service('mysqld').with(
58+
:name => param_values[:service_name],
59+
:ensure => 'running',
60+
:enable => 'true',
61+
:require => 'Package[mysql-server]'
62+
)}
63+
end
64+
end
65+
end
66+
end
67+
end
2268
end

0 commit comments

Comments
 (0)