625c3fe3ea7e1fba3753e9d34f5714c4f8f91493
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / spec / unit / puppet / type / rabbitmq_queue_spec.rb
1 require 'spec_helper'
2 describe Puppet::Type.type(:rabbitmq_queue) do
3   let(:queue) do
4     Puppet::Type.type(:rabbitmq_queue).new(
5       name: 'foo@bar',
6       durable: :true,
7       arguments: {
8         'x-message-ttl' => 45,
9         'x-dead-letter-exchange' => 'deadexchange'
10       }
11     )
12   end
13
14   it 'accepts an queue name' do
15     queue[:name] = 'dan@pl'
16     expect(queue[:name]).to eq('dan@pl')
17   end
18   it 'requires a name' do
19     expect do
20       Puppet::Type.type(:rabbitmq_queue).new({})
21     end.to raise_error(Puppet::Error, 'Title or name must be provided')
22   end
23   it 'does not allow whitespace in the name' do
24     expect do
25       queue[:name] = 'b r'
26     end.to raise_error(Puppet::Error, %r{Valid values match})
27   end
28   it 'does not allow names without @' do
29     expect do
30       queue[:name] = 'b_r'
31     end.to raise_error(Puppet::Error, %r{Valid values match})
32   end
33
34   it 'accepts an arguments with numbers value' do
35     queue[:arguments] = { 'x-message-ttl' => 30 }
36     expect(queue[:arguments].to_json).to eq('{"x-message-ttl":30}')
37   end
38
39   it 'accepts an arguments with string value' do
40     queue[:arguments] = { 'x-dead-letter-exchange' => 'catchallexchange' }
41     expect(queue[:arguments].to_json).to eq('{"x-dead-letter-exchange":"catchallexchange"}')
42   end
43
44   it 'accepts an queue durable' do
45     queue[:durable] = :true
46     expect(queue[:durable]).to eq(:true)
47   end
48
49   it 'accepts a user' do
50     queue[:user] = :root
51     expect(queue[:user]).to eq(:root)
52   end
53
54   it 'accepts a password' do
55     queue[:password] = :PaSsw0rD
56     expect(queue[:password]).to eq(:PaSsw0rD)
57   end
58 end