-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