require 'puppet' describe Puppet::Type.type(:swift_storage_policy) do it 'should pass if swift_storage_policy name is an integer' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1') }.to_not raise_error end it 'should fail if swift_storage_policy name is not an integer' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => 'a') }.to raise_error(Puppet::ResourceError, /swift_storage_policy name must be a positive integer/) end it 'should pass if policy_name is valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0') }.to_not raise_error end it 'should fail if policy_name is not valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy_0') }.to raise_error(Puppet::ResourceError, /policy_name must contain only letters, digits or a dash/) end it 'should pass if aliases is valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :aliases => 'Gold, Silver, taco') }.to_not raise_error end it 'should fail if aliases is not valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :aliases => 'Gold, Sil_ver taco') }.to raise_error(Puppet::ResourceError, /aliases must contain only letters, digits or a dash in a comma separated string/) end it 'should pass if policy_type is valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :policy_type => 'replication') }.to_not raise_error end it 'should fail if policy_type is not valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :policy_type => 'other') }.to raise_error(Puppet::ResourceError, /Valid values match \/(replication)|(erasure_coding)/) end it 'should pass if default is valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :default => 'true') }.to_not raise_error end it 'should fail if default is not valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :default => 'other') }.to raise_error(Puppet::ResourceError, /Valid values match \/(true)|(false)/) end it 'should pass if deprecated is valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :deprecated => 'no') }.to_not raise_error end it 'should fail if deprecated is not valid' do expect { Puppet::Type.type(:swift_storage_policy).new(:name => '1', :policy_name => 'Policy-0', :deprecated => 'other') }.to raise_error(Puppet::ResourceError, /Valid values match \/(yes)|(no)/) end end