]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/rabbitmq/spec/unit/puppet/type/rabbitmq_user_permissions_spec.rb
move to puppetlabs rabbitmq module
[dsa-puppet.git] / 3rdparty / modules / rabbitmq / spec / unit / puppet / type / rabbitmq_user_permissions_spec.rb
1 require 'puppet'
2 require 'puppet/type/rabbitmq_user_permissions'
3 describe Puppet::Type.type(:rabbitmq_user_permissions) do
4   before :each do
5     @perms = Puppet::Type.type(:rabbitmq_user_permissions).new(:name => 'foo@bar')
6   end
7   it 'should accept a valid hostname name' do
8     @perms[:name] = 'dan@bar'
9     @perms[:name].should == 'dan@bar'
10   end
11   it 'should require a name' do
12     expect {
13       Puppet::Type.type(:rabbitmq_user_permissions).new({})
14     }.to raise_error(Puppet::Error, 'Title or name must be provided')
15   end
16   it 'should fail when names dont have a @' do
17     expect {
18       @perms[:name] = 'bar'
19     }.to raise_error(Puppet::Error, /Valid values match/)
20   end
21   [:configure_permission, :read_permission, :write_permission].each do |param|
22     it 'should not default to anything' do
23        @perms[param].should == nil
24     end
25     it "should accept a valid regex for #{param}" do
26       @perms[param] = '.*?'
27       @perms[param].should == '.*?'  
28     end
29     it "should accept an empty string for #{param}" do
30       @perms[param] = ''
31       @perms[param].should == ''  
32     end
33     it "should not accept invalid regex for #{param}" do
34       expect {
35         @perms[param] = '*'
36       }.to raise_error(Puppet::Error, /Invalid regexp/)
37     end
38   end
39   {:rabbitmq_vhost => 'dan@test', :rabbitmq_user => 'test@dan'}.each do |k,v|
40     it "should autorequire #{k}" do
41       if k == :rabbitmq_vhost
42         vhost = Puppet::Type.type(k).new(:name => "test")
43       else
44         vhost = Puppet::Type.type(k).new(:name => "test", :password => 'pass')
45       end
46       perm  = Puppet::Type.type(:rabbitmq_user_permissions).new(:name => v)
47       config = Puppet::Resource::Catalog.new :testing do |conf|
48         [vhost, perm].each { |resource| conf.add_resource resource }
49       end
50       rel = perm.autorequire[0]
51       rel.source.ref.should == vhost.ref
52       rel.target.ref.should == perm.ref
53     end
54   end
55 end