From a24f850a4b80c3cdd992cc4b3f407819e39367e7 Mon Sep 17 00:00:00 2001 From: Trevor McCasland Date: Tue, 12 Apr 2016 12:44:40 -0500 Subject: [PATCH] Add Unit Tests for Swift_config type Change-Id: Ib431515f8472789def4a6dc4ab4fab97d698246f Partial-bug: #1440401 --- spec/unit/type/swift_config_spec.rb | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/spec/unit/type/swift_config_spec.rb b/spec/unit/type/swift_config_spec.rb index d7341be7..d889a69c 100644 --- a/spec/unit/type/swift_config_spec.rb +++ b/spec/unit/type/swift_config_spec.rb @@ -6,6 +6,51 @@ describe 'Puppet::Type.type(:swift_config)' do @swift_config = Puppet::Type.type(:swift_config).new(:name => 'DEFAULT/foo', :value => 'bar') end + it 'should require a name' do + expect { + Puppet::Type.type(:swift_config).new({}) + }.to raise_error(Puppet::Error, 'Title or name must be provided') + end + + it 'should not expect a name with whitespace' do + expect { + Puppet::Type.type(:swift_config).new(:name => 'f oo') + }.to raise_error(Puppet::Error, /Parameter name failed/) + end + + it 'should fail when there is no section' do + expect { + Puppet::Type.type(:swift_config).new(:name => 'foo') + }.to raise_error(Puppet::Error, /Parameter name failed/) + end + + it 'should not require a value when ensure is absent' do + Puppet::Type.type(:swift_config).new(:name => 'DEFAULT/foo', :ensure => :absent) + end + + it 'should accept a valid value' do + @swift_config[:value] = 'bar' + expect(@swift_config[:value]).to eq('bar') + end + + it 'should not accept a value with whitespace' do + @swift_config[:value] = 'b ar' + expect(@swift_config[:value]).to eq('b ar') + end + + it 'should accept valid ensure values' do + @swift_config[:ensure] = :present + expect(@swift_config[:ensure]).to eq(:present) + @swift_config[:ensure] = :absent + expect(@swift_config[:ensure]).to eq(:absent) + end + + it 'should not accept invalid ensure values' do + expect { + @swift_config[:ensure] = :latest + }.to raise_error(Puppet::Error, /Invalid value/) + end + it 'should autorequire the package that install the file' do catalog = Puppet::Resource::Catalog.new package = Puppet::Type.type(:package).new(:name => 'swift')