Update 3rdparty rabbitmq module
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / spec / unit / puppet / type / rabbitmq_binding_spec.rb
index b0671e7..14b8824 100644 (file)
@@ -1,50 +1,47 @@
-require 'puppet'
-require 'puppet/type/rabbitmq_binding'
+require 'spec_helper'
 describe Puppet::Type.type(:rabbitmq_binding) do
-  before :each do
-    @binding = Puppet::Type.type(:rabbitmq_binding).new(
-      :name => 'foo@blub@bar',
-      :destination_type => :queue
+  let(:binding) do
+    Puppet::Type.type(:rabbitmq_binding).new(
+      name: 'foo@blub@bar',
+      destination_type: :queue
     )
   end
-  it 'should accept an queue name' do
-    @binding[:name] = 'dan@dude@pl'
-    @binding[:name].should == 'dan@dude@pl'
-  end
-  it 'should require a name' do
-    expect {
-      Puppet::Type.type(:rabbitmq_binding).new({})
-    }.to raise_error(Puppet::Error, 'Title or name must be provided')
-  end
-  it 'should not allow whitespace in the name' do
-    expect {
-      @binding[:name] = 'b r'
-    }.to raise_error(Puppet::Error, /Valid values match/)
-  end
-  it 'should not allow names without one @' do
-    expect {
-      @binding[:name] = 'b_r'
-    }.to raise_error(Puppet::Error, /Valid values match/)
-  end
 
-  it 'should not allow names without two @' do
-    expect {
-      @binding[:name] = 'b@r'
-    }.to raise_error(Puppet::Error, /Valid values match/)
+  it 'accepts an queue name' do
+    binding[:name] = 'dan@dude@pl'
+    expect(binding[:name]).to eq('dan@dude@pl')
   end
-
-  it 'should accept an binding destination_type' do
-    @binding[:destination_type] = :exchange
-    @binding[:destination_type].should == :exchange
-  end
-
-  it 'should accept a user' do
-    @binding[:user] = :root
-    @binding[:user].should == :root
-  end
-
-  it 'should accept a password' do
-    @binding[:password] = :PaSsw0rD
-    @binding[:password].should == :PaSsw0rD
+  it 'requires a name' do
+    expect do
+      Puppet::Type.type(:rabbitmq_binding).new({})
+    end.to raise_error(Puppet::Error, 'Title or name must be provided')
+  end
+  it 'errors when missing source' do
+    expect do
+      Puppet::Type.type(:rabbitmq_binding).new(
+        name: 'test binding',
+        destination: 'foobar'
+      )
+    end.to raise_error(Puppet::Error, %r{`source` must be defined})
+  end
+  it 'errors when missing destination' do
+    expect do
+      Puppet::Type.type(:rabbitmq_binding).new(
+        name: 'test binding',
+        source: 'foobar'
+      )
+    end.to raise_error(Puppet::Error, %r{`destination` must be defined})
+  end
+  it 'accepts an binding destination_type' do
+    binding[:destination_type] = :exchange
+    expect(binding[:destination_type]).to eq(:exchange)
+  end
+  it 'accepts a user' do
+    binding[:user] = :root
+    expect(binding[:user]).to eq(:root)
+  end
+  it 'accepts a password' do
+    binding[:password] = :PaSsw0rD
+    expect(binding[:password]).to eq(:PaSsw0rD)
   end
 end