]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 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
diff --git a/3rdparty/modules/rabbitmq/spec/unit/puppet/type/rabbitmq_user_permissions_spec.rb b/3rdparty/modules/rabbitmq/spec/unit/puppet/type/rabbitmq_user_permissions_spec.rb
new file mode 100644 (file)
index 0000000..7cb66ea
--- /dev/null
@@ -0,0 +1,55 @@
+require 'puppet'
+require 'puppet/type/rabbitmq_user_permissions'
+describe Puppet::Type.type(:rabbitmq_user_permissions) do
+  before :each do
+    @perms = Puppet::Type.type(:rabbitmq_user_permissions).new(:name => 'foo@bar')
+  end
+  it 'should accept a valid hostname name' do
+    @perms[:name] = 'dan@bar'
+    @perms[:name].should == 'dan@bar'
+  end
+  it 'should require a name' do
+    expect {
+      Puppet::Type.type(:rabbitmq_user_permissions).new({})
+    }.to raise_error(Puppet::Error, 'Title or name must be provided')
+  end
+  it 'should fail when names dont have a @' do
+    expect {
+      @perms[:name] = 'bar'
+    }.to raise_error(Puppet::Error, /Valid values match/)
+  end
+  [:configure_permission, :read_permission, :write_permission].each do |param|
+    it 'should not default to anything' do
+       @perms[param].should == nil
+    end
+    it "should accept a valid regex for #{param}" do
+      @perms[param] = '.*?'
+      @perms[param].should == '.*?'  
+    end
+    it "should accept an empty string for #{param}" do
+      @perms[param] = ''
+      @perms[param].should == ''  
+    end
+    it "should not accept invalid regex for #{param}" do
+      expect {
+        @perms[param] = '*'
+      }.to raise_error(Puppet::Error, /Invalid regexp/)
+    end
+  end
+  {:rabbitmq_vhost => 'dan@test', :rabbitmq_user => 'test@dan'}.each do |k,v|
+    it "should autorequire #{k}" do
+      if k == :rabbitmq_vhost
+        vhost = Puppet::Type.type(k).new(:name => "test")
+      else
+        vhost = Puppet::Type.type(k).new(:name => "test", :password => 'pass')
+      end
+      perm  = Puppet::Type.type(:rabbitmq_user_permissions).new(:name => v)
+      config = Puppet::Resource::Catalog.new :testing do |conf|
+        [vhost, perm].each { |resource| conf.add_resource resource }
+      end
+      rel = perm.autorequire[0]
+      rel.source.ref.should == vhost.ref
+      rel.target.ref.should == perm.ref
+    end
+  end
+end