2 require 'puppet/type/rabbitmq_user_permissions'
3 describe Puppet::Type.type(:rabbitmq_user_permissions) do
5 @perms = Puppet::Type.type(:rabbitmq_user_permissions).new(:name => 'foo@bar')
7 it 'should accept a valid hostname name' do
8 @perms[:name] = 'dan@bar'
9 @perms[:name].should == 'dan@bar'
11 it 'should require a name' do
13 Puppet::Type.type(:rabbitmq_user_permissions).new({})
14 }.to raise_error(Puppet::Error, 'Title or name must be provided')
16 it 'should fail when names dont have a @' do
19 }.to raise_error(Puppet::Error, /Valid values match/)
21 [:configure_permission, :read_permission, :write_permission].each do |param|
22 it 'should not default to anything' do
23 @perms[param].should == nil
25 it "should accept a valid regex for #{param}" do
27 @perms[param].should == '.*?'
29 it "should accept an empty string for #{param}" do
31 @perms[param].should == ''
33 it "should not accept invalid regex for #{param}" do
36 }.to raise_error(Puppet::Error, /Invalid regexp/)
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")
44 vhost = Puppet::Type.type(k).new(:name => "test", :password => 'pass')
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 }
50 rel = perm.autorequire[0]
51 rel.source.ref.should == vhost.ref
52 rel.target.ref.should == perm.ref