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