Skip to content

Commit 0ec70ff

Browse files
committed
spec: Add Unit Tests for Ceilometer_config type/provider
Change-Id: I0527683055829d3a3b6ff465c48a0caf44c41595 Partial-bug: #1440401 Signed-off-by: Gael Chamoulaud <gchamoul@redhat.com>
1 parent 2b3a328 commit 0ec70ff

2 files changed

Lines changed: 95 additions & 0 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
$LOAD_PATH.push(
2+
File.join(
3+
File.dirname(__FILE__),
4+
'..',
5+
'..',
6+
'..',
7+
'fixtures',
8+
'modules',
9+
'inifile',
10+
'lib')
11+
)
12+
13+
require 'spec_helper'
14+
15+
provider_class = Puppet::Type.type(:ceilometer_config).provider(:ini_setting)
16+
17+
describe provider_class do
18+
19+
it 'should default to the default setting when no other one is specified' do
20+
resource = Puppet::Type::Ceilometer_config.new(
21+
{
22+
:name => 'DEFAULT/foo',
23+
:value => 'bar'
24+
}
25+
)
26+
provider = provider_class.new(resource)
27+
expect(provider.section).to eq('DEFAULT')
28+
expect(provider.setting).to eq('foo')
29+
end
30+
31+
it 'should allow setting to be set explicitly' do
32+
resource = Puppet::Type::Ceilometer_config.new(
33+
{
34+
:name => 'dude/foo',
35+
:value => 'bar'
36+
}
37+
)
38+
provider = provider_class.new(resource)
39+
expect(provider.section).to eq('dude')
40+
expect(provider.setting).to eq('foo')
41+
end
42+
end
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
require 'puppet'
2+
require 'puppet/type/ceilometer_config'
3+
4+
describe 'Puppet::Type.type(:ceilometer_config)' do
5+
before :each do
6+
@ceilometer_config = Puppet::Type.type(:ceilometer_config).new(:name => 'DEFAULT/foo', :value => 'bar')
7+
end
8+
9+
it 'should require a name' do
10+
expect {
11+
Puppet::Type.type(:ceilometer_config).new({})
12+
}.to raise_error(Puppet::Error, 'Title or name must be provided')
13+
end
14+
15+
it 'should not expect a name with whitespace' do
16+
expect {
17+
Puppet::Type.type(:ceilometer_config).new(:name => 'f oo')
18+
}.to raise_error(Puppet::Error, /Parameter name failed/)
19+
end
20+
21+
it 'should fail when there is no section' do
22+
expect {
23+
Puppet::Type.type(:ceilometer_config).new(:name => 'foo')
24+
}.to raise_error(Puppet::Error, /Parameter name failed/)
25+
end
26+
27+
it 'should not require a value when ensure is absent' do
28+
Puppet::Type.type(:ceilometer_config).new(:name => 'DEFAULT/foo', :ensure => :absent)
29+
end
30+
31+
it 'should accept a valid value' do
32+
@ceilometer_config[:value] = 'bar'
33+
expect(@ceilometer_config[:value]).to eq('bar')
34+
end
35+
36+
it 'should not accept a value with whitespace' do
37+
@ceilometer_config[:value] = 'b ar'
38+
expect(@ceilometer_config[:value]).to eq('b ar')
39+
end
40+
41+
it 'should accept valid ensure values' do
42+
@ceilometer_config[:ensure] = :present
43+
expect(@ceilometer_config[:ensure]).to eq(:present)
44+
@ceilometer_config[:ensure] = :absent
45+
expect(@ceilometer_config[:ensure]).to eq(:absent)
46+
end
47+
48+
it 'should not accept invalid ensure values' do
49+
expect {
50+
@ceilometer_config[:ensure] = :latest
51+
}.to raise_error(Puppet::Error, /Invalid value/)
52+
end
53+
end

0 commit comments

Comments
 (0)