]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/rabbitmq/spec/unit/puppet/type/rabbitmq_user_spec.rb
move to puppetlabs rabbitmq module
[dsa-puppet.git] / 3rdparty / modules / rabbitmq / spec / unit / puppet / type / rabbitmq_user_spec.rb
1 require 'puppet'
2 require 'puppet/type/rabbitmq_user'
3 describe Puppet::Type.type(:rabbitmq_user) do
4   before :each do
5     @user = Puppet::Type.type(:rabbitmq_user).new(:name => 'foo', :password => 'pass')
6   end
7   it 'should accept a user name' do
8     @user[:name] = 'dan'
9     @user[:name].should == 'dan'
10     @user[:admin].should == :false
11   end
12   it 'should accept a password' do
13     @user[:password] = 'foo'
14     @user[:password].should == 'foo'
15   end
16   it 'should require a password' do
17     expect {
18       Puppet::Type.type(:rabbitmq_user).new(:name => 'foo')
19     }.to raise_error(/must set password/)
20   end
21   it 'should require a name' do
22     expect {
23       Puppet::Type.type(:rabbitmq_user).new({})
24     }.to raise_error(Puppet::Error, 'Title or name must be provided')
25   end
26   it 'should not allow whitespace in the name' do
27     expect {
28       @user[:name] = 'b r'
29     }.to raise_error(Puppet::Error, /Valid values match/)
30   end
31   [true, false, 'true', 'false'].each do |val|
32     it "admin property should accept #{val}" do
33       @user[:admin] = val
34       @user[:admin].should == val.to_s.to_sym
35     end
36   end
37   it 'should not accept non-boolean values for admin' do
38     expect {
39       @user[:admin] = 'yes'
40     }.to raise_error(Puppet::Error, /Invalid value/)
41   end
42   it 'should not accept tags with spaces' do
43     expect {
44       @user[:tags] = ['policy maker']
45     }.to raise_error(Puppet::Error, /Invalid tag/)
46   end
47   it 'should not accept the administrator tag' do
48     expect {
49       @user[:tags] = ['administrator']
50     }.to raise_error(Puppet::Error, /must use admin property/)
51   end
52 end