/
mysql_spec.rb
71 lines (59 loc) · 2.07 KB
/
mysql_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
require 'spec_helper'
describe Puppet::Type.type(:mysql_plugin).provider(:mysql) do
let(:defaults_file) { '--defaults-extra-file=/root/.my.cnf' }
let(:resource) { Puppet::Type.type(:mysql_plugin).new(
{ :ensure => :present,
:soname => 'auth_socket.so',
:name => 'auth_socket',
:provider => described_class.name
}
)}
let(:provider) { resource.provider }
before :each do
Facter.stubs(:value).with(:root_home).returns('/root')
Puppet::Util.stubs(:which).with('mysql').returns('/usr/bin/mysql')
File.stubs(:file?).with('/root/.my.cnf').returns(true)
provider.class.stubs(:mysql).with([defaults_file, '-NBe', 'show plugins']).returns('auth_socket ACTIVE AUTHENTICATION auth_socket.so GPL')
end
let(:instance) { provider.class.instances.first }
describe 'self.prefetch' do
it 'exists' do
provider.class.instances
provider.class.prefetch({})
end
end
describe 'create' do
it 'loads a plugin' do
provider.expects(:mysql).with([defaults_file, '-NBe', "install plugin #{resource[:name]} soname '#{resource[:soname]}'"])
provider.expects(:exists?).returns(true)
expect(provider.create).to be_truthy
end
end
describe 'destroy' do
it 'unloads a plugin if present' do
provider.expects(:mysql).with([defaults_file, '-NBe', "uninstall plugin #{resource[:name]}"])
provider.expects(:exists?).returns(false)
expect(provider.destroy).to be_truthy
end
end
describe 'exists?' do
it 'checks if plugin exists' do
expect(instance.exists?).to be_truthy
end
end
describe 'self.defaults_file' do
it 'sets --defaults-extra-file' do
File.stubs(:file?).with('/root/.my.cnf').returns(true)
expect(provider.defaults_file).to eq '--defaults-extra-file=/root/.my.cnf'
end
it 'fails if file missing' do
File.stubs(:file?).with('/root/.my.cnf').returns(false)
expect(provider.defaults_file).to be_nil
end
end
describe 'soname' do
it 'returns a soname' do
expect(instance.soname).to eq('auth_socket.so')
end
end
end